Compare commits

...

45 Commits

Author SHA1 Message Date
Frédéric Couchet 968a7daf5f On affiche que les émissions complètes notament pour Podmust
car Podmust affiche toujours par défaut le podcast
« Quoi de libre » en dernier épisode de chaque émission. Ce
qui n'est pas top.
2024-05-30 11:11:33 +02:00
Frédéric Couchet f8b1597fd5 Fichier pour créer un flux RSS avec uniquement les audios.
Notamment pour https://podmust.com/podcast/libre-a-vous

Podmust ne sait pas gérer les flux RSS mixte, il faut un flux
qui contient que des items de type audio.
2024-05-29 18:45:55 +02:00
Vincent Calame 8e79fb4c17 Version 1.4beta3 de ScrutariJs 2024-05-15 23:03:57 +02:00
chankalan 33bb3ee4e5 retrouver les images après la maj de piwigo 2024-05-06 14:08:34 +02:00
Vincent Calame 0c0f528138 Version 1.4alpha16 de ScrutariJs 2024-05-05 03:55:03 +02:00
Vincent Calame bffdc7ec05 Nouvelle version de ScrutariJs 2024-05-02 11:31:17 +02:00
Frédéric Couchet 21eb6ba6d0 Lors de l'ajout d'une actu sur le site, une balise vide <description> apparaît
et casse le flux RSS. Cela se produit uniquement pour la dernière actu
publiée.
Correction pour éviter ce souci.
2024-04-29 13:15:27 +02:00
Vincent Calame ca2dc78a3b Version de ScrutariJs 1.4alpha6 2024-04-28 12:03:43 +02:00
chankalan 233236f4bf report des corrections de Fred 2024-03-28 18:36:33 +01:00
chankalan 8b4dc20719 v1.3.8 2024-03-28 17:59:54 +01:00
chankalan 662e00fee8 valide SPIP 4.2.* 2024-03-28 17:58:55 +01:00
chankalan f7f13dd317 correction pour l'utilisation des mots-clefs, liste articles et
pagination
2024-03-28 17:55:13 +01:00
chankalan ebf06d3ab8 v1.3.7 2024-02-13 14:59:04 +01:00
chankalan d88e3f790d jointures pour rechercher dans les chapitres quand on cherche les
articles
2024-02-13 14:58:30 +01:00
Vincent Calame d34e6b3c6f Lien vers la recherche avancée 2023-10-02 22:21:24 +02:00
Frédéric Couchet 2f49686269 Ajout du flux MP3 (pour iPhone) 2023-08-30 11:58:24 +02:00
chankalan 24ebf48c47 iframe du radiolive : ouvrir pour la hauteur nécessaire du contenu 2023-08-30 10:34:10 +02:00
Vincent Calame 764ea3a040 Petite modification dans le client Scrutari 2023-07-24 20:00:43 +02:00
Vincent Calame 8debdd2696 Adaptation aux petits écrans 2023-07-20 12:28:40 +02:00
Vincent Calame 8d30afaf19 Nouvelle version du client ScrutariJs 2023-07-08 16:22:12 +02:00
Vincent Calame 36b4178bb9 CSS de la première fenêtre de recherche 2023-07-08 00:20:31 +02:00
Vincent Calame 4e353d8729 Nouveau client opérationnel 2023-07-07 21:13:11 +02:00
Vincent Calame 410ca05205 Nouvelle version du client Scrutari 2023-07-06 16:56:15 +02:00
Frédéric Couchet b6323555b3 Remplacement du flux mp3 qui est sur le port 8444 qui peut être bloqué dans certains contexte.
A la place pour on met le flux https
2023-07-05 16:03:36 +02:00
Frédéric Couchet a8f5c5ea23 Changement d'url pour le webchat 2023-06-27 16:11:38 +02:00
Frédéric Couchet b0f0868c4a Correction pour éviter d'avoir l'affichage du champ link en double 2023-06-24 10:31:40 +02:00
chankalan 48d5b432b4 composition landing pour page unique 2023-04-25 10:01:31 +02:00
Frédéric Couchet 77f942685c Changement de termes pour les boutons abonnement et désabonnement
aux listes de diffusion
2023-04-23 11:06:59 +02:00
chankalan 106d9d15a3 ouvrir l'url chapitre 2023-04-03 11:05:14 +02:00
chankalan febf3fd5f3 nettoyage : .liste_articles = .liste.articles et ajax sur la liste des
articles du blog
2023-04-03 10:04:47 +02:00
Frédéric Couchet 67d86189dd Correction pour les pages de type Actualités 2023-03-29 10:23:04 +02:00
Vincent Calame 9b71b74061 Insertion en début de squelette de la page introrecherchescrutari 2023-03-04 21:39:44 +01:00
Vincent Calame 07ae60ac30 Correction sur le permalien 2023-03-03 16:58:06 +01:00
Vincent Calame 954c2f3eb0 Fusion de la branche Scrutari 2023-03-03 16:17:48 +01:00
Vincent Calame a613f0f709 Petis ajustements de CSS 2023-03-03 15:29:56 +01:00
Vincent Calame 52190c250e Rétablissement du filtre scrutari 2023-03-03 11:27:39 +01:00
Vincent Calame 7a971e3d26 Actualisation du fichier libreavous_fonctions.php 2023-03-01 19:36:29 +01:00
Vincent Calame a63d448e70 Passage à la version 1.3.1 2023-03-01 19:31:51 +01:00
Vincent Calame 816ded088d options.php comme dans la branche master 2023-03-01 19:12:41 +01:00
Frédéric Couchet 72470086e2 Suppression de l'affichage d'une description inutile pour les actualités
Suppression de l'affichage de guid en double
2023-02-28 21:40:47 +01:00
Frédéric Couchet be64e384a8 Correction du comportement qui conduite au signalement multiple en tant que nouvel
épisode chaque fois que le titre ou la description est mise à jour.
Comportement avant que les podcasts soient disponibles.
2023-02-28 15:15:23 +01:00
chankalan a6400b3b2d Merge branch 'selection' 2023-02-02 14:16:41 +01:00
chankalan 4631964e01 Merge branch 'master' of ssh://forge.april.org:222/siteweb/libreavous 2023-02-02 14:12:45 +01:00
chankalan 079abcbac3 suivre le trafic avec matomo 2023-02-02 14:12:05 +01:00
Vincent Calame f3df01827c Premier jet de l'intégration du client Scrutari dans Libre à vous 2022-10-01 00:18:32 +02:00
43 changed files with 6546 additions and 94 deletions

View File

@ -0,0 +1,10 @@
<div class="formulaire_spip formulaire_recherche[ (#ENV{class})]">
<form action="[(#ENV{action})]" method="get" role="search" aria-label="[(#ENV{class}|sinon{recherche})]">
[(#ENV{action}|form_hidden)]
[<input type="hidden" name="lang" value="(#ENV{lang})" />]
<label for="recherche#ENV{_id_champ}"><:info_rechercher_02:/></label>
<input type="[(#HTML5|?{search,text})]" class="search text" size="10" name="recherche" placeholder="<:baz_april:rechercher:/>"[ value="(#ENV{recherche})"] accesskey="4" autocapitalize="off" id="recherche#ENV{_id_champ}" />
<button type="submit" class="submit"><:info_rechercher:/></button>
</form>
<div id="recherche_avancee_bloc"><a href="#URL_PAGE{scrutarijs}" id="lien_recherche_avancee">Recherche avancée</a></div>
</div>

View File

@ -8,5 +8,6 @@ if (!defined('_ECRIRE_INC_VERSION')) {
$GLOBALS[$GLOBALS['idx_lang']] = array(
'verifier_formulaire' => 'Veuillez indiquer votre adresse courriel svp.',
'btn_desabonnement' => 'Je me désabonne',
'btn_abonnement' => 'Je m\'abonne',
);

View File

@ -103,3 +103,10 @@ function libreavous_siextinf($chaine) {
return $replace;
}
}
//traite une chaine de recherche provenant d'un paramètre extérieur (q ou qid)
function filtre_scrutari_escape_query($texte) {
$texte = preg_replace('/[^-*":!()&|[:alnum:]]+/u', ' ', $texte);
$texte = trim(str_replace("\"", "\\\"", $texte));
return $texte;
}

View File

@ -37,7 +37,7 @@ function libreavous_affiche_enfants($flux) {
$id_rubrique = sql_getfetsel("id_rubrique", "spip_articles", "id_article=" . intval($id_objet));
$composition_rubrique = sql_getfetsel("composition", "spip_rubriques", "id_rubrique=" . intval($id_rubrique));
if ($e['type'] === 'article' and $composition_rubrique === 'emissions') {
$flux['data'] .= recuperer_fond(
'prive/objets/liste/chapitres',
@ -46,7 +46,7 @@ function libreavous_affiche_enfants($flux) {
'id_article' => $id_objet
)
);
if (autoriser('creerchapitredans', 'articles', $id_objet)) {
include_spip('inc/presentation');
$flux['data'] .= icone_verticale(
@ -79,7 +79,7 @@ function libreavous_boite_infos($flux) {
$flux['data'] = substr_replace($flux['data'], $texte, $p, 0);
}
}
return $flux;
}
@ -132,3 +132,11 @@ function libreavous_objet_compte_enfants($flux) {
}
function libreavous_rechercher_liste_des_jointures($tables){
// rechercher en plus dans les chapitres si on cherche dans un article
$tables['article']['chapitre']['titre'] = 5;
$tables['article']['chapitre']['references_sujet'] = 3;
$tables['article']['chapitre']['description_rss'] = 3;
return $tables;
}

View File

@ -1,10 +1,10 @@
<paquet
prefix="libreavous"
categorie="squelette"
version="1.3.6"
version="1.3.8"
schema="0.1.11"
etat="stable"
compatibilite="[3.2.8;4.1.*]"
compatibilite="[3.2.8;4.2.*]"
>
<nom>+ APRIL - LIBRE À VOUS</nom>
<!-- personnalisons le site LIBRE À VOUS -->
@ -29,6 +29,7 @@
<pipeline nom="boite_infos" inclure="libreavous_pipelines.php" />
<pipeline nom="objet_compte_enfants" inclure="libreavous_pipelines.php" />
<pipeline nom="affiche_milieu" inclure="libreavous_pipelines.php" />
<pipeline nom="rechercher_liste_des_jointures" inclure="libreavous_pipelines.php" />
<menu nom="configurer_libreavous" titre="libreavous:options_libreavous" parent="menu_squelette" icone="images/baz_april-16.png" />

35
squelettes/audios.html Normal file
View File

@ -0,0 +1,35 @@
[(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})]<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0" xml:base="https://www.libreavous.org/rss" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Libre à vous ! April et Cause Commune</title>
<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>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 : Libre à vous ! https://libreavous.org 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 sur le site web de la radio https://cause-commune.fm 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.</description>
<generator>SPIP - www.spip.net</generator>
<itunes:category text="Technology"/>
<itunes:author>April et Radio Cause Commune</itunes:author>
<itunes:summary>Libre à vous ! L'émission de l'April, l'association de promotion et de défense du logiciel libre, sur radio Cause Commune. Prenez le contrôle de vos libertés informatiques, découvrez les enjeux et lactualité du Libre.</itunes:summary>
<itunes:owner>
<itunes:name>April</itunes:name>
<itunes:email>bonjour@libreavous.org</itunes:email>
</itunes:owner>
<itunes:explicit>no</itunes:explicit>
<itunes:image href="https://media.april.org/audio/radio-cause-commune/libre-a-vous/visuels/banniere-libre-a-vous-flux-rss-3000x3000.png"/>
<language>fr</language>
<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>
</image>
<BOUCLE_emissions(ARTICLES) {lang ?}{branche ?}{id_mot ?}{id_auteur ?} {statut=publie} {par date}{inverse}{unique}>
<INCLURE{fond=inc-rss-item-audios, id_article} />
</BOUCLE_emissions>
</channel>
</rss>

38
squelettes/body.html Normal file
View File

@ -0,0 +1,38 @@
<body class="body[__(#ENV{type-page})][--(#COMPOSITION)][ body--(#COMPOSITION)][ body--(#SITE_COURANT)]">
<div class="page_wrapper">
<header class="page_header">
<div class="page_container page_header_container">
<INCLURE{fond=header/#ENV{type-page},env}>
</div>
</header>
<div class="page_main">
<div class="page_container page_main__container">
<div class="page_main_content">
<div class="page_content">
<INCLURE{fond=breadcrumb/#ENV{type-page},env}>
<INCLURE{fond=content/#ENV{type-page},env}>
<div class="page_extra">
<INCLURE{fond=extra/#ENV{type-page},env}>
</div>
</div>[(#COMPOSITION|=={dossier}|et{#ENV{type-page}|=={article}}|et{#COMPOSITION|=={landing}}|non)
<INCLURE{fond=aside/#ENV{type-page},env} />
<!--.aside-->]
</div>
</div>
</div>
[(#COMPOSITION|=={landing}|non)
<aside class="page_connex">
<INCLURE{fond=connex/#ENV{type-page},env} />
</aside>
<footer class="page_footer">
<div class="page_container page_footer__container">
<INCLURE{fond=footer/#ENV{type-page},env}>
</div>
<INCLURE{fond=inclure/initiatives} />
</footer>
]
</div>
</body>

View File

@ -4,23 +4,23 @@
<article>
<header class="cartouche">
<p class="article__infos">
<span class="num_emission #EDIT{surtitre}">#[(#SURTITRE)]</span>
[<span class="article__date">Émission du [(#DATE|jour|libreavous_aveczerod)/][(#DATE|mois)/](#DATE|annee)</span>]
</p>
<h1><span class="#EDIT{titre} article__titre">[(#TITRE|libreavous_supp_numero)]</span>[
<small class="#EDIT{soustitre} soustitre">(#SOUSTITRE)</small>
]</h1>
<div class="article__interactivite">
<p><:libreavous:donnez_votre_avis:></p>
<p><:libreavous:donnez_votre_avis:></p>
<div>
#FORMULAIRE_NOTATION
[(#MODELE{comments-nb}{id_article})]
<div>
</div>
<div class="postmeta">
#MODELE{article_traductions}
<BOUCLE_groupes(GROUPES_MOTS){par titre}>
@ -37,7 +37,7 @@
</header>
<div class="main">
<div class="fb">
[(#PODCAST_OGG|oui)
<div class="lecteur">
@ -79,23 +79,23 @@
<li><a href="https://media.april.org/audio/radio-cause-commune/libre-a-vous/emissions/[(#PODCAST_CODE)]/libre-a-vous-[(#PODCAST_CODE)].mp3" class="btn blanc mp3 podcast" title="Podcast de l'émission #TITRE [(#PODCAST_MP3|taille_en_octets)] (nouvelle fenêtre)" target="_blank" rel="noreferrer noopener"><small><:libreavous:emission_integrale:></small><br /><:libreavous:podcast:> <:libreavous:mp3:></a></li>
</ul>
</div>
</div>][(#PODCAST_OGG|non)
[(#ENV{date}|>{#GET{fin_emission}}|oui) <div class="lecteur"><p><:libreavous:le_podcast_sera_bientot_disponible_long:></p></div>]
]
[(#REM) un inclure pour gestion du cache ]
<INCLURE{fond=inclure/radiolive, debut_affichage=#DATE, fin_emission=#GET{fin_emission}} />
[<div class="emission-sommaire #EDIT{podcast_sommaire}">(#PODCAST_SOMMAIRE|propre)</div>]
[(#REM) on ne doit pas afficher les chapitres qui n'ont pas de fichiers sonores = ceux qui n'ont rien dans #FIN ]
#SET{chsl,#ARRAY}#SET{chpassl,#ARRAY}
<BOUCLE_chap(CHAPITRES){id_article}>[(#OGG|oui)
[(#TYPE_SUJET|=={SL}|oui)#SET{chsl,#GET{chsl}|push{#ID_CHAPITRE}}]
[(#TYPE_SUJET|=={SL}|non)#SET{chpassl,#GET{chpassl}|push{#ID_CHAPITRE}}]
][(#REFERENCES_SUJET|oui)#SET{references,oui}]</BOUCLE_chap>
<BOUCLE_sl(CHAPITRES){id_chapitre IN #GET{chsl}}>
<div class="sujet_principal">
<h2><:libreavous:sujet_principal:></h2>
@ -114,7 +114,7 @@
</div>
#SET{thumbs,'data-original-title'}
#SET{thumbs,'img'}
<B_photos>
<div class="fl">
<h2 id="galeriephotos">
@ -122,13 +122,13 @@
[<a href="(#PODCAST_GALERIEPHOTOS)" class="galeriephotos"><:libreavous:galerie_april:></a>]
</h2>
<div class="galerie_photoapril flex flex3 #EDIT{podcast_galeriephotos}">
<BOUCLE_photos(DATA){source file, #PODCAST_GALERIEPHOTOS}{valeur == #GET{thumbs}}{0,3}>
<BOUCLE_photos(DATA){source file, #PODCAST_GALERIEPHOTOS}{valeur == #GET{thumbs}}{1,3}>
<figure class="photoapril">[<img src="https://photos.april.org/(#VALEUR|extraire_attribut{src})"[ alt="(#VALEUR|extraire_attribut{alt})"] />]</figure>
</BOUCLE_photos>
</div>
</div>
</B_photos>
<div class="fb detail_emission">
<p>[(#PODCAST_PERSONNES|oui)<a href="#personnesparticipantes" class="btn taille70 blanc"><:libreavous:personnes_participantes:></a>]
[(#PODCAST_REFERENCES|ou{#GET{references}|=={oui}}|oui)<a href="#references" class="btn taille70 blanc"><:libreavous:references:></a>]
@ -136,12 +136,12 @@
[(#PODCAST_MUSIQUE|oui)<a href="#pausesmusicales" class="btn taille70 blanc"><:libreavous:musiques:></a>]
[(#CONFIG{libreavous/licence}|oui)<a href="#licence" class="btn taille70 blanc"><:libreavous:licence:></a>]
</p>
[<div class="texte #EDIT{texte}">(#TEXTE)</div>]
[<h2 id="personnesparticipantes">Personnes participantes</h2>
<div class="#EDIT{podcast_personnes}">(#PODCAST_PERSONNES|propre)</div>]
[(#PODCAST_REFERENCES|ou{#GET{references}|=={oui}}|oui)<h2 id="references">Références</h2>]
[<div class="emission-references texte #EDIT{podcast_references}">(#PODCAST_REFERENCES|propre)</div>]
<B_chapitres_references_chroniques>
@ -152,7 +152,7 @@
</BOUCLE_chapitres_references_chroniques>
</div>
</B_chapitres_references_chroniques>
<B_ttc>
<p><strong><:libreavous:retrouvez_toutes_les_chroniques_de_l_emission:> : </strong></p>
<ul>
@ -163,26 +163,26 @@
</BOUCLE_ttc>
</ul>
</B_ttc>
[<h2 id="transcription">Transcription</h2> <p><a href="(#PODCAST_TRANSCRIPTION)" class="#EDIT{podcast_transcription}" target="_blank" rel="noreferrer noopener" title="Lien vers la transcription (nouvelle fenêtre)">Lire la transcription de l'émission</a></p>]
[<h2 id="pausesmusicales"><:libreavous:musiques:></h2>
<div class="#EDIT{podcast_musique}">(#PODCAST_MUSIQUE|propre)</div>]
[<div class="licence" id="licence">(#CONFIG{libreavous/licence}|propre)</div>]
</div>
</div>
[<aside>
(#INCLURE{fond=inclure/documents,id_article})
</aside>]
<footer>
[<p class="#EDIT{hyperlien} article__hyperlien"><:voir_en_ligne:/> : <a href="(#URL_SITE)" class="spip_out">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
[<p class="#EDIT{hyperlien} article__hyperlien"><:voir_en_ligne:/> : <a href="(#URL_SITE)" class="spip_out">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
[<div class="article__notes">(#NOTES)</div>]
</footer>
</article>
</BOUCLE_principale>

View File

@ -0,0 +1,52 @@
<BOUCLE_principale(ARTICLES){id_article}>
<article>
<header class="cartouche">
[<p class="#EDIT{surtitre} surtitre">#(#SURTITRE)</p>]
<h1><span class="#EDIT{titre} article__titre">#TITRE</span>[
<small class="#EDIT{soustitre} soustitre">(#SOUSTITRE)</small>
]</h1>
<p class="article__infos">
[<span class="article__date">Publié le (#DATE|nom_jour) [(#DATE|affdate)]</span>]
[(#CONFIG{baz_april/afficherauteurs}|=={on}|oui)[<span class="article__auteurs"><:par_auteur:> (#LESAUTEURS)</span>]]
</p>
<div class="postmeta">
#MODELE{article_traductions}
<BOUCLE_groupes(GROUPES_MOTS){par titre}>
<B_tags>
<p class="mots">
<strong>#TITRE : </strong><BOUCLE_tags(MOTS){id_article}{id_groupe}{', '}>
<a href="#URL_MOT">#TITRE</a>
</BOUCLE_tags>
</p>
</B_tags>
</BOUCLE_groupes>
</div>
</header>
<div class="main">
[<div class="#EDIT{chapo} article__chapo">(#CHAPO|adaptive_images{#CONST{_CONTENT_WIDTH},0})</div>]
[<div class="#EDIT{texte} article__texte">(#TEXTE|adaptive_images{#CONST{_CONTENT_WIDTH},0})</div>]
</div>
[<aside>
(#INCLURE{fond=inclure/documents,id_article})
</aside>]
<footer>
[<p class="#EDIT{hyperlien} article__hyperlien"><:voir_en_ligne:/> : <a href="(#URL_SITE)" class="spip_out">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
[<div class="article__notes">(#NOTES)</div>]
</footer>
</article>
</BOUCLE_principale>

View File

@ -0,0 +1,5 @@
<composition>
<nom>Landing page</nom>
<description>Pour un article de type Page unique, avoir une page sans menu ni pied de page</description>
<icon>images/article-landing.png</icon>
</composition>

View File

@ -1,20 +1,3 @@
<BOUCLE_chapitre(CHAPITRES){id_chapitre}>
<article>
<header class="cartouche">
<h1>#TITRE</h1>
</header>
<div class="main">
<p>Dans <BOUCLE_article(ARTICLES){id_article}><a href="#URL_ARTICLE">#[(#SURTITRE)] - [(#TITRE|libreavous_supp_numero)]</a></BOUCLE_article></p>
[<h3 class="spip">Références</h3>
(#REFERENCES_SUJET|propre)]
<h3 class="spip">Fichiers</h3>
<ul>
<li><a href="https://media.april.org/audio/radio-cause-commune/libre-a-vous/emissions/[(#CODE_PODCAST)]/libre-a-vous-[(#CODE_PODCAST)]-[(#CODE_FICHIER)].ogg">libre-a-vous-[(#CODE_PODCAST)]-[(#CODE_FICHIER)].ogg</a> ([(#OGG|taille_en_octets)] Mio)</li>
<li><a href="https://media.april.org/audio/radio-cause-commune/libre-a-vous/emissions/[(#CODE_PODCAST)]/libre-a-vous-[(#CODE_PODCAST)]-[(#CODE_FICHIER)].mp3">libre-a-vous-[(#CODE_PODCAST)]-[(#CODE_FICHIER)].mp3</a> ([(#MP3|taille_en_octets)] Mio)</li>
</ul>
</div>
</article>
<INCLURE{fond=inclure/resume/chronique, id_chapitre} />
</BOUCLE_chapitre>

View File

@ -7,8 +7,19 @@
<BOUCLE_emissions(RUBRIQUES){composition=emissions}>
<B_articles>
<p><strong>#GRAND_TOTAL</strong> [(#TOTAL_BOUCLE|>={2}|?{<:libreavous:reponses_triees_par_pertinence:>,<:libreavous:reponse:>})]</p>
[(#REM) Vincent : Exemple de bouton
]
<p>Vous pouvez étendre votre recherche en cherchant également dans les transcriptions :
<a href="#URL_PAGE{scrutarijs,q=#ENV{recherche}}" class="btn">Étendre la recherche</a></p>
<BOUCLE_articles(ARTICLES) {id_rubrique} {recherche} {par points}{inverse} {pagination 10}>
</BOUCLE_articles>
<p><:libreavous:recherche_sans_resultat:></p>
[(#REM) Vincent : code horriblement dupliqué
]
<p>Vous pouvez étendre votre recherche en cherchant également dans les transcriptions :
<a href="#URL_PAGE{scrutarijs,q=#ENV{recherche}}" class="btn">Étendre la recherche</a></p>
<//B_articles>
</BOUCLE_emissions>

View File

@ -7,39 +7,16 @@
<div class="main">
[<div class="#EDIT{texte} chapo">(#TEXTE|adaptive_images{#CONST{_CONTENT_WIDTH}})</div>]
[(#REM) inclure en ajax la liste des articles]
<INCLURE{fond=inclure/liste/articles-blog, env, ajax} />
</div><!-- .main -->
</article>
#SET{'debut_mois', (#ENV{datetri}|baz_moisdecal{0,'Y-m-d'})}
#SET{'fin_mois', (#ENV{datetri}|baz_moisdecal{1,'Y-m-d'})}
<B_articlesdate>
<section class="liste articles blog">
[<h2 class="h2[ (#ENV{datetri}|oui)date]">(#ENV{datetri}|affdate{nom_mois})[(#ENV{datetri}|affdate{Y}|!={[(#VAL{Y}|date)]}|oui)[ (#ENV{datetri}|affdate{Y})]]</h2>]
<ul class="liste-items">
<BOUCLE_articlesdate(ARTICLES){si #ENV{datetri}|?{' '}}{date < #GET{fin_mois}}{date >= #GET{debut_mois}}{id_rubrique}{tri_rubrique}>
<li class="item clearfix">#INCLURE{fond=inclure/resume/article,id_article,env,composition=blog,h=h3,pagination=oui}</li>
</BOUCLE_articlesdate>
</ul>
</section>
</B_articlesdate>
<section class="liste articles blog">
[<h2 class="h2[ (#ENV{datetri}|oui)date]"><:baz_april:aucun_article_dans_cette_periode:> : (#ENV{datetri}|affdate{nom_mois})[(#ENV{datetri}|affdate{Y}|!={[(#VAL{Y}|date)]}|oui)[ (#ENV{datetri}|affdate{Y})]]</h2>]
<B_articles>#ANCRE_PAGINATION
<ul class="liste-items">
<BOUCLE_articles(ARTICLES){id_rubrique}{lang}{tri_rubrique}{pagination 10}>
<li class="item clearfix">#INCLURE{fond=inclure/resume/article,id_article,env,composition=blog,h=h3,pagination=oui}</li>
</BOUCLE_articles>
</ul>
[<nav class="pagination" role="pagination">(#PAGINATION)</nav>]
</B_articles>
</section>
<//B_articlesdate>
[(#REM) pour les sous-rubriques, on utilise le modele <rubriqueXX|rubriques> dans le texte si on veut]
<aside>
[(#REM) Gestion du portfolio et des documents ]
[(#INCLURE{fond=inclure/documents,id_rubrique})]

View File

@ -10,7 +10,7 @@
</article>
<B_articles>
<section class="liste_articles">
<section class="liste articles">
#ANCRE_PAGINATION
<BOUCLE_articles(ARTICLES){id_rubrique} {tri_rubrique} {pagination 10}>
#INCLURE{fond=inclure/resume/article, id_article}
@ -21,12 +21,12 @@
<BOUCLE_rubriques(RUBRIQUES) {id_parent} {par num titre, titre}>
<h2><a href="#URL_RUBRIQUE">#TITRE</a></h2>
<section class="liste_articles">
<section class="liste articles">
<BOUCLE_articles_rub(ARTICLES){id_rubrique} {tri_rubrique} {0,3}>
#INCLURE{fond=inclure/resume/article, id_article}
</BOUCLE_articles_rub>
</section>
<p class="liste_articles__suite"><a href="#URL_RUBRIQUE">Tous les articles &laquo;&nbsp;#TITRE&nbsp;&raquo;</a></p>
<p class="liste articles__suite"><a href="#URL_RUBRIQUE">Tous les articles &laquo;&nbsp;#TITRE&nbsp;&raquo;</a></p>
</BOUCLE_rubriques>
</BOUCLE_principale>

View File

@ -0,0 +1,222 @@
[===============================================================(#REM)
Configuration du client Scrutari
]
<script>
$(function () {
var scrutariApi = new Scrutari.Api(Scrutari.Lav.getApiSettings());
var initOptions = Object.assign(Scrutari.Lav.getInitOptions(), {
initialQuery: "[(#ENV*{q}|scrutari_escape_query)]",
initialQId: "[(#ENV*{qid}|scrutari_escape_query)]",
permalinkPattern: "https://www.libreavous.org/spip.php?page=scrutarijs&qid=$QID"
});
Scrutari.Client.init(scrutariApi, "scrutari_client", initOptions, null);
});
</script>
</script>
[===============================================================(#REM)
Déclaration du bloc destiné à recevoir le client
]
<article class="texte_content">
<BOUCLE_entete(ARTICLES){page=recherchescrutari}>
<header class="cartouche">
[<p class="#EDIT{surtitre} surtitre">#(#SURTITRE)</p>]
<h1><span class="#EDIT{titre} article__titre">#TITRE</span>[
<small class="#EDIT{soustitre} soustitre">(#SOUSTITRE)</small>
]</h1>
</header>
<div class="main">
[<div class="#EDIT{chapo} article__chapo">(#CHAPO|adaptive_images{#CONST{_CONTENT_WIDTH},0})</div>]
[<div class="#EDIT{texte} article__texte">(#TEXTE|adaptive_images{#CONST{_CONTENT_WIDTH},0})</div>]
</div>
</BOUCLE_entete>
[===============================================================(#REM)
Structure du client
]
<div id="scrutari_client">
<!-- main -->
<!-- main.main-form -->
<form data-scrutari-form="mainsearch" role="search">
<!-- main.main-form.area-input -->
<div data-scrutari-area="input" class="lav-input-Area">
<span class="lav-input-Block">
<i class="fas fa-search"></i>
<input type="search" class="lav-input-Field" size="30" name="q" value="" placeholder="Chercher un sujet, un-e intervenant-e…">
</span>
<button type="submit" class="btn lav-input-Submit">Rechercher</button>
</div>
<!-- /main.main-form.area-input -->
<!-- main.main-form.area-parameters -->
<details data-scrutari-area="parameters" class="lav-details-Container">
<summary class="lav-details-Summary">Option de recherche avancée</summary>
<div class="lav-details-Body">
<p>
<button data-scrutari-action="showModal" data-scrutari-target="help_relation" type="button" title="Aide sur les relations">
<i class="fas fa-question-circle"></i>
</button>
<span>Relations :</span>
<label><input type="radio" name="q-mode" value="intersection" checked> Et</label>
<label><input type="radio" name="q-mode" value="union"> Ou</label>
<label><input type="radio" name="q-mode" value="operation"> Avancée</label>
</p>
<p>
<button data-scrutari-action="showModal" data-scrutari-target="help_ponderation" type="button" title="Aide sur la priorité">
<i class="fas fa-question-circle"></i>
</button>
<span>Priorité :</span>
<label><input type="radio" name="ponderation" value="pertinence" checked> Pertinence</label>
<label><input type="radio" name="ponderation" value="date"> Date</label>
</p>
<p>
<button data-scrutari-action="showModal" data-scrutari-target="help_periode" type="button" title="Aide sur la période">
<i class="fas fa-question-circle"></i>
</button>
<span>Période :</span>
<input type="text" class="lav-details-Input" name="periode" value="">
</p>
<p>
<button data-scrutari-action="showModal" data-scrutari-target="help_elargir" type="button" title="Aide sur « élargir »">
<i class="fas fa-question-circle"></i>
</button>
<span>Élargir :</span>
<label><input type="radio" name="wildchar" value="end" checked> Oui*</label>
<label><input type="radio" name="wildchar" value="none"> Non</label>
</p>
</div>
</details>
<!-- /main.main-form.area-parameters -->
</form>
<!-- /main.main-form -->
<!-- main.area-result -->
<div data-scrutari-area="result" class="scrutari-area-Result">
<div class="scrutari-Hidden" data-scrutari-hidden="empty">
<h3>Votre recherche :</h3>
<p id="scrutari_lav_sequence" class="lav-Sequence"></p>
</div>
<div class="scrutari-Hidden lav-Filtre" data-scrutari-hidden="empty">
<p>Filtrer les résultats :
<label class="lav-FiltreLabel"><input type="radio" name="lav-site" value="tous" checked> Tous</label>
<span data-scrutari-count="total-tous" class="lav-Total">(<span data-scrutari-component="value"></span>)</span>
<label class="lav-FiltreLabel"><input type="radio" name="lav-site" value="libreavous" class="lav-Total"> Libre à vous !</label>
<span data-scrutari-count="total-libreavous" class="lav-Total">(<span data-scrutari-component="value"></span>)</span>
<label class="lav-FiltreLabel"><input type="radio" name="lav-site" value="librealire"> Libre à lire</label>
<span data-scrutari-count="total-librealire" class="lav-Total">(<span data-scrutari-component="value"></span>)</span>
</p>
</div>
<!-- main.area-result.result-history -->
<div class="scrutari-Hidden lav-history-Container" data-scrutari-hidden="start">
<span class="lav-history-Label">Votre historique :</span>
<div data-scrutari-block="historyList" class="lav-history-List">
</div>
<span class="lav-history-Clear">
<button data-scrutari-action="clearHistory" title="Vider lhistorique"><i class="fas fa-trash"></i></button>
</span>
</div>
<!-- /main.area-result.result-history -->
<!-- main.area-result.result-links -->
<div class="scrutari-Hidden" data-scrutari-hidden="empty">
<p>Partager votre recherche :
<a href="#" data-scrutari-link="permalink" data-scrutari-action="copyPermalink" target="_blank" class="btn taille80 blanc">Copier lURL</a>
<a href="#" data-scrutari-link="csv" target="_blank" class="btn taille80 blanc">Télécharger (CSV)</a>
<a href="#" data-scrutari-link="ods" target="_blank" class="btn taille80 blanc">Télécharger (ODS)</a>
<a href="#" data-scrutari-link="atom" target="_blank" class="btn taille80 blanc">Sabonner (Atom)</a>
</p>
</div>
<!-- /main.area-result.result-links -->
<div class="scrutari-Hidden lav-TitreResultats" data-scrutari-hidden="empty">
<h3>Vos résultats</h3>
</div>
<div data-scrutari-block="paginationBlock"></div>
</div>
<!-- /main.area-result -->
<!-- main.area-poweredby -->
<div class="scrutari-area-Poweredby scrutari-Hidden" data-scrutari-hidden="empty">
<p>
<a href="http://www.scrutari.net" target="_blank">
<span class="scrutari-icon-Logo"></span> Recherche effectuée par Scrutari
</a>
</p>
</div>
<!-- /main.area-poweredby -->
<!-- /main -->
</div>
</article>
[===============================================================(#REM)
Partie consacrée à la réécriture des gabarits
voir https://framagit.org/Scrutari/scrutarijs/-/wikis/adaptation#reformuler-un-%C3%A9lement-de-structure-et-de-gabarit
]
<script data-name="fiche_attribute" type="text/x-scrutari-template">
{{if type!=="block"}}
<li>
{{for valueArray ~len=valueArray.length}}
{{:~scrutari_mark(#data)}}{{if #index != (~len -1)}}, {{/if}}
{{/for}}
</li>
{{else}}
<li>
<p>
{{>title}}{{>~scrutari_loc("_ colon")}}
</p>
<div class="scrutari-fiche-AttributeValues">
{{for valueArray ~len=valueArray.length}}
<p class="scrutari-fiche-AttributeValue">
{{:~scrutari_mark(#data)}}
</p>
{{/for}}
</div>
</li>
{{/if}}
</script>
<script data-name="fiche_mtitre" type="text/x-scrutari-template">
<p class="scrutari-fiche-Titre surtitre">
{{if _numero}}
<span class="num_emission">{{: _numero}}</span>
{{/if}}
<a href="{{:href}}"
class="scrutari-fiche-Link"
data-scrutari-link="fiche_{{:codefiche}}"
{{if _target}} target="{{:_target}}"{{/if}}>
{{if mtitre}}
{{:~scrutari_mark(mtitre)}}
{{else}}
{{:href}}
{{/if}}
</a>
</p>
</script>
<script data-name="libreavous_end_ul" type="text/x-scrutari-template">
</ul>
</script>
<script data-name="libreavous_start_ul" type="text/x-scrutari-template">
<ul class="spip">
</script>
<script data-name="pagination_lav" type="text/x-scrutari-template">
{{for array}}
<div class="{{if !active}}scrutari-Hidden{{/if}}" data-scrutari-block="ficheGroup{{:suffix}}" data-scrutari-name="{{:name}}">
<div data-scrutari-block="ficheList{{:suffix}}"></div>
<div data-scrutari-block="bottomTabs{{:suffix}}"></div>
</div>
{{/for}}
</script>
[===============================================================(#REM)
Fenêtres
]
<BOUCLE_fenetres(ARTICLES){id_rubrique=12}>
<aside data-scrutari-modal="help_#SURTITRE" class="scrutari-Hidden" aria-hidden="true">
<header>
#TITRE
</header>
<div>
#TEXTE
</div>
</aside>
</BOUCLE_fenetres>

View File

@ -0,0 +1 @@
<title>Recherche Scrutari</title>

View File

@ -0,0 +1,20 @@
[(#REM) Version 1.0.7 de JsRender]
[<script src="(#CHEMIN{javascript/jsrender/jsrender.min.js}|timestamp)"></script>]
[(#REM) Fichier principal]
[<script src="(#CHEMIN{javascript/scrutarijs/scrutarijs.js}|timestamp)"></script>]
[(#REM) Version française]
[<script src="(#CHEMIN{javascript/scrutarijs/l10n/fr.js}|timestamp)"></script>]
[(#REM) Client spécial LAV, c'est lui qui doit recevoir les modifications et adaptations]
[<script src="(#CHEMIN{javascript/scrutarijs/Scrutari.Lav.js}|timestamp)"></script>]
[(#REM) Structure et gabarits par défaut]
[<script src="(#CHEMIN{javascript/scrutarijs/frameworks/default.js}|timestamp)"></script>]
[<link rel="stylesheet" href="(#CSS{javascript/scrutarijs/scrutarijs.css})" type="text/css" />]
[<link rel="stylesheet" href="(#CSS{javascript/scrutarijs/perso.css})" type="text/css" />]

View File

@ -4,7 +4,7 @@
[(#LOGO_SITE_SPIP|image_reduire{400,320}) ]<span class="nom_site_spip">#NOM_SITE_SPIP</span>
[<small class="slogan_site_spip[ (#EDIT{meta-slogan_site})]">(#SLOGAN_SITE_SPIP)</small>]
[(#SI_PAGE{sommaire}|non)</a>]</h1>
</div>
</div>[(#COMPOSITION|=={landing}|non)
<div class="header_menu">
<INCLURE{fond=inclure/nav-secteurs, env} />
<div class="liens">
@ -15,3 +15,4 @@
</div>
</div>
</div>
]

View File

@ -0,0 +1,64 @@
[(#REM) Fred : On fait une boucle sur la liste des articles des rubriques Emissions (rubrique n°1)
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}{statut=publie}>
[(#ID_RUBRIQUE|=={8}|oui)
<item>
<title>[(#TITRE|texte_backend)]</title>
<guid isPermaLink="false">[(#URL_ARTICLE|url_absolue)]</guid>
<pubDate>[(#DATE|date_822)]</pubDate>
[(#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;
][&lt;div class="hyperlien"&gt;<:voir_en_ligne|html2unicode:> : &lt;a href="(#URL_SITE)" class="spip_out"&gt;[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]}|texte_backend)]&lt;/a&gt;&lt;/div&gt;
][&lt;hr /&gt;
&lt;div class='rss_notes'&gt;(#NOTES|texte_backend)&lt;/div&gt;
][&lt;div class='rss_ps'&gt;(#PS|texte_backend)&lt;/div&gt;]
</content:encoded>
]
</item>
]
[(#ID_RUBRIQUE|=={1}|oui)
[(#PODCAST_DUREE|oui)
<item>
<title>[#(#TITRE|texte_backend)]</title>
<guid isPermaLink="false">[(#URL_ARTICLE|url_absolue)]</guid>
[(#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>})]
[(#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>})]
[(#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>]
[(#REM) Fred : sans cette ligne il y a avait un bug d'affichage RSS lors de l'ajout d'une actu]
<description>[(#DESCRIPTION_RSS|propre|texte_backend)][(#PODCAST_SOMMAIRE|propre|texte_backend)][(#PODCAST_DUREE|oui)&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;p&gt;Sur cette page, vous pouvez commenter les émissions, nous faire des retours pour nous améliorer, ou encore des suggestions. Et même mettre une note sur 5 étoiles si vous le souhaitez.&lt;/p&gt;&lt;p&gt; Il est important pour nous davoir vos retours car, contrairement par exemple à une conférence, nous navons pas un public en face de nous qui peut réagir.&lt;/p&gt;&lt;p&gt;Pour connaître les nouvelles concernant lémission (annonce des podcasts, des émissions à venir, ainsi que des bonus et des annonces en avant-première) &lt;a href="https://www.libreavous.org/contact"&gt;inscrivez-vous à la lettre dactus&lt;/a&gt;.&lt;/p&gt;]</description>
</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>

View File

@ -11,6 +11,11 @@ si la date de publication de l'article est dans le futur. Cela concerne l'émiss
[(#REM) Fred : Si l'article concerne une actualité on met juste le titre ]
[(#ID_RUBRIQUE|=={8}|oui)<title>[(#TITRE|texte_backend)]</title>]
[(#REM) Fred Février 2023 : Si l'article concerne une actualité on met l'url en GUID ]
[(#REM) [(#ID_RUBRIQUE|=={8}|oui)<guid isPermaLink="false">[(#URL_ARTICLE|url_absolue)]</guid>] ]
[(#REM) Fred Février 2023 : On met l'url en GUID ]
<guid isPermaLink="false">[(#URL_ARTICLE|url_absolue)]</guid>
[(#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 ]
@ -19,12 +24,12 @@ flux RSS libreavous.org ]
[(#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) [(#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) [(#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 ]
@ -47,8 +52,14 @@ personne saura que les podcasts sont disponibles et qu'en cliquant sur le lien e
[(#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)&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;[(#PODCAST_DUREE|oui)&lt;p&gt;Sur cette page, vous pouvez commenter les émissions, nous faire des retours pour nous améliorer, ou encore des suggestions. Et même mettre une note sur 5 étoiles si vous le souhaitez.&lt;/p&gt;&lt;p&gt; Il est important pour nous davoir vos retours car, contrairement par exemple à une conférence, nous navons pas un public en face de nous qui peut réagir.&lt;/p&gt;&lt;p&gt;Pour connaître les nouvelles concernant lémission (annonce des podcasts, des émissions à venir, ainsi que des bonus et des annonces en avant-première) &lt;a href="https://www.libreavous.org/contact"&gt;inscrivez-vous à la lettre dactus&lt;/a&gt;.&lt;/p&gt;]]</description>
[(#REM) Fred : sans cette ligne il y a avait un bug d'affichage RSS lors de l'ajout d'une actu]
[(#ID_RUBRIQUE|=={1}|oui)
[(#ENV{date}|<={#GET{debut_emission}}|oui)<description>[(#DESCRIPTION_RSS|propre|texte_backend)] [(#PODCAST_SOMMAIRE|propre|texte_backend)]]]
[(#REM) Fred : l'article concerne une émission]
[(#ID_RUBRIQUE|=={1}|oui)
[(#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)][(#PODCAST_DUREE|oui)&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;p&gt;Sur cette page, vous pouvez commenter les émissions, nous faire des retours pour nous améliorer, ou encore des suggestions. Et même mettre une note sur 5 étoiles si vous le souhaitez.&lt;/p&gt;&lt;p&gt; Il est important pour nous davoir vos retours car, contrairement par exemple à une conférence, nous navons pas un public en face de nous qui peut réagir.&lt;/p&gt;&lt;p&gt;Pour connaître les nouvelles concernant lémission (annonce des podcasts, des émissions à venir, ainsi que des bonus et des annonces en avant-première) &lt;a href="https://www.libreavous.org/contact"&gt;inscrivez-vous à la lettre dactus&lt;/a&gt;.&lt;/p&gt;]]</description>]
[(#REM)
Le bloc qui suit diffuse aussi le texte integral de l'article,
@ -145,3 +156,4 @@ sujet individuel ]
</BOUCLE_test>
</BOUCLE_chapitres>

View File

@ -28,3 +28,19 @@
<!-- Script Podlove -->
<script src="/node_modules/@podlove/podlove-web-player/dist/embed.js"></script>
<!-- / Script Podlove -->
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://statistiques.april.org/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '9']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->

View File

@ -6,15 +6,15 @@
][(#GET{live}|=={on}|oui)<div class="radiolive">
<div class="live_audio">
<h4>Écoutez le direct !</h4>
<audio controls> <source src="https://icecast.libre-a-toi.org:8444/voixdulat_mp3" type="audio/mpeg">.Votre navigateur ne supporte pas l'élément <code>audio</code> : <a href="https://icecast.libre-a-toi.org:8444/voixdulat_mp3">écoutez l'émission</a>.</audio>
<audio controls> <source src="https://connect.libre-a-toi.org/voixdulat_ogg" type="audio/ogg"> <source src="https://connect.libre-a-toi.org/voixdulat_mp3" type="audio/mpeg">.Votre navigateur ne supporte pas l'élément <code>audio</code> : <a href="https://connect.libre-a-toi.org/voixdulat_ogg">écoutez l'émission</a> (format OGG) ou <a href="https://connect.libre-a-toi.org/voixdulat_mp3">format MP3</a>.</audio>
<p><strong><:libreavous:de_15h30_a_17h:></strong></p>
</div>
<h4>Salon web</h4>
<div class="bp-medium-up">
<iframe src="https://talk.libre-a-toi.org/channel/libreavous?layout=embedded" id="rocketchat"></iframe>
<p><small>Le cadre affichant le salon peut mettre quelques secondes à apparaître. S'il ne s'affiche pas, vous pouvez <a href="https://talk.libre-a-toi.org/channel/libreavous" class="spip_out">accéder au salon dans une autre fenêtre</a>. Vous pouvez aussi vérifier que votre navigateur, ou un de ses modules, ne bloque pas les cadres (iframe).</small></p>
<iframe src="https://chat.libratoi.org/channel/libreavous?layout=embedded" id="rocketchat"></iframe>
<p><small>Le cadre affichant le salon peut mettre quelques secondes à apparaître. S'il ne s'affiche pas, vous pouvez <a href="https://chat.libratoi.org/channel/libreavous" class="spip_out">accéder au salon dans une autre fenêtre</a>. Vous pouvez aussi vérifier que votre navigateur, ou un de ses modules, ne bloque pas les cadres (iframe).</small></p>
</div>
<div class="bp-medium">
Rendez-vous sur <a href="https://talk.libre-a-toi.org/channel/libreavous" class="spip_out">le salon de l'émission.</a>
Rendez-vous sur <a href="https://chat.libratoi.org/channel/libreavous" class="spip_out">le salon de l'émission.</a>
</div>
</div>]

View File

@ -12,7 +12,7 @@
</p>
[(#SESSION{id_auteur}|oui)[<small style="float: right;"><a href="(#URL_ECRIRE{chapitre}|parametre_url{id_chapitre,#ID_CHAPITRE})">modifier</a></small>]]
<h1 class="h2">[(#_chronique:TITRE)[ <a href="(#SELF|ancre_url{chronique#_chronique:ID_CHAPITRE})]"><i class="fas fa-link"></i></a>]</h1>
<h1 class="h2">[(#_chronique:TITRE)[ <a href="(#URL_CHAPITRE)]"><i class="fas fa-link"></i></a>]</h1>
<div class="postmeta">
#MODELE{article_traductions}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,200 @@
/*! Lity - v2.4.1 - 2020-04-26
* http://sorgalla.com/lity/
* Copyright (c) 2015-2020 Jan Sorgalla; Licensed MIT */
.lity {
z-index: 9990;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
white-space: nowrap;
background: #0b0b0b;
background: rgba(0, 0, 0, 0.9);
outline: none !important;
opacity: 0;
-webkit-transition: opacity 0.3s ease;
-o-transition: opacity 0.3s ease;
transition: opacity 0.3s ease;
}
.lity.lity-opened {
opacity: 1;
}
.lity.lity-closed {
opacity: 0;
}
.lity * {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.lity-wrap {
z-index: 9990;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
text-align: center;
outline: none !important;
}
.lity-wrap:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -0.25em;
}
.lity-loader {
z-index: 9991;
color: #fff;
position: absolute;
top: 50%;
margin-top: -0.8em;
width: 100%;
text-align: center;
font-size: 14px;
font-family: Arial, Helvetica, sans-serif;
opacity: 0;
-webkit-transition: opacity 0.3s ease;
-o-transition: opacity 0.3s ease;
transition: opacity 0.3s ease;
}
.lity-loading .lity-loader {
opacity: 1;
}
.lity-container {
z-index: 9992;
position: relative;
text-align: left;
vertical-align: middle;
display: inline-block;
white-space: normal;
max-width: 100%;
max-height: 100%;
outline: none !important;
}
.lity-content {
z-index: 9993;
width: 100%;
-webkit-transform: scale(1);
-ms-transform: scale(1);
-o-transform: scale(1);
transform: scale(1);
-webkit-transition: -webkit-transform 0.3s ease;
transition: -webkit-transform 0.3s ease;
-o-transition: -o-transform 0.3s ease;
transition: transform 0.3s ease;
transition: transform 0.3s ease, -webkit-transform 0.3s ease, -o-transform 0.3s ease;
}
.lity-loading .lity-content,
.lity-closed .lity-content {
-webkit-transform: scale(0.8);
-ms-transform: scale(0.8);
-o-transform: scale(0.8);
transform: scale(0.8);
}
.lity-content:after {
content: '';
position: absolute;
left: 0;
top: 0;
bottom: 0;
display: block;
right: 0;
width: auto;
height: auto;
z-index: -1;
-webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
}
.lity-close {
z-index: 9994;
width: 35px;
height: 35px;
position: fixed;
right: 0;
top: 0;
-webkit-appearance: none;
cursor: pointer;
text-decoration: none;
text-align: center;
padding: 0;
color: #fff;
font-style: normal;
font-size: 35px;
font-family: Arial, Baskerville, monospace;
line-height: 35px;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
border: 0;
background: none;
outline: none;
-webkit-box-shadow: none;
box-shadow: none;
}
.lity-close::-moz-focus-inner {
border: 0;
padding: 0;
}
.lity-close:hover,
.lity-close:focus,
.lity-close:active,
.lity-close:visited {
text-decoration: none;
text-align: center;
padding: 0;
color: #fff;
font-style: normal;
font-size: 35px;
font-family: Arial, Baskerville, monospace;
line-height: 35px;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
border: 0;
background: none;
outline: none;
-webkit-box-shadow: none;
box-shadow: none;
}
.lity-close:active {
top: 1px;
}
/* Image */
.lity-image img {
max-width: 100%;
display: block;
line-height: 0;
border: 0;
}
/* iFrame */
.lity-iframe .lity-container,
.lity-youtube .lity-container,
.lity-vimeo .lity-container,
.lity-facebookvideo .lity-container,
.lity-googlemaps .lity-container {
width: 100%;
max-width: 964px;
}
.lity-iframe-container {
width: 100%;
height: 0;
padding-top: 56.25%;
overflow: auto;
pointer-events: auto;
-webkit-transform: translateZ(0);
transform: translateZ(0);
-webkit-overflow-scrolling: touch;
}
.lity-iframe-container iframe {
position: absolute;
display: block;
top: 0;
left: 0;
width: 100%;
height: 100%;
-webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
background: #000;
}
.lity-hide {
display: none;
}

View File

@ -0,0 +1,638 @@
/*! Lity - v2.4.1 - 2020-04-26
* http://sorgalla.com/lity/
* Copyright (c) 2015-2020 Jan Sorgalla; Licensed MIT */
(function(window, factory) {
if (typeof define === 'function' && define.amd) {
define(['jquery'], function($) {
return factory(window, $);
});
} else if (typeof module === 'object' && typeof module.exports === 'object') {
module.exports = factory(window, require('jquery'));
} else {
window.lity = factory(window, window.jQuery || window.Zepto);
}
}(typeof window !== "undefined" ? window : this, function(window, $) {
'use strict';
var document = window.document;
var _win = $(window);
var _deferred = $.Deferred;
var _html = $('html');
var _instances = [];
var _attrAriaHidden = 'aria-hidden';
var _dataAriaHidden = 'lity-' + _attrAriaHidden;
var _focusableElementsSelector = 'a[href],area[href],input:not([disabled]),select:not([disabled]),textarea:not([disabled]),button:not([disabled]),iframe,object,embed,[contenteditable],[tabindex]:not([tabindex^="-"])';
var _defaultOptions = {
esc: true,
handler: null,
handlers: {
image: imageHandler,
inline: inlineHandler,
youtube: youtubeHandler,
vimeo: vimeoHandler,
googlemaps: googlemapsHandler,
facebookvideo: facebookvideoHandler,
iframe: iframeHandler
},
template: '<div class="lity" role="dialog" aria-label="Dialog Window (Press escape to close)" tabindex="-1"><div class="lity-wrap" data-lity-close role="document"><div class="lity-loader" aria-hidden="true">Loading...</div><div class="lity-container"><div class="lity-content"></div><button class="lity-close" type="button" aria-label="Close (Press escape to close)" data-lity-close>&times;</button></div></div></div>'
};
var _imageRegexp = /(^data:image\/)|(\.(png|jpe?g|gif|svg|webp|bmp|ico|tiff?)(\?\S*)?$)/i;
var _youtubeRegex = /(youtube(-nocookie)?\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed\/?)?([\w-]{11})(.*)?/i;
var _vimeoRegex = /(vimeo(pro)?.com)\/(?:[^\d]+)?(\d+)\??(.*)?$/;
var _googlemapsRegex = /((maps|www)\.)?google\.([^\/\?]+)\/?((maps\/?)?\?)(.*)/i;
var _facebookvideoRegex = /(facebook\.com)\/([a-z0-9_-]*)\/videos\/([0-9]*)(.*)?$/i;
var _transitionEndEvent = (function() {
var el = document.createElement('div');
var transEndEventNames = {
WebkitTransition: 'webkitTransitionEnd',
MozTransition: 'transitionend',
OTransition: 'oTransitionEnd otransitionend',
transition: 'transitionend'
};
for (var name in transEndEventNames) {
if (el.style[name] !== undefined) {
return transEndEventNames[name];
}
}
return false;
})();
function transitionEnd(element) {
var deferred = _deferred();
if (!_transitionEndEvent || !element.length) {
deferred.resolve();
} else {
element.one(_transitionEndEvent, deferred.resolve);
setTimeout(deferred.resolve, 500);
}
return deferred.promise();
}
function settings(currSettings, key, value) {
if (arguments.length === 1) {
return $.extend({}, currSettings);
}
if (typeof key === 'string') {
if (typeof value === 'undefined') {
return typeof currSettings[key] === 'undefined'
? null
: currSettings[key];
}
currSettings[key] = value;
} else {
$.extend(currSettings, key);
}
return this;
}
function parseQueryParams(params) {
var pairs = decodeURI(params.split('#')[0]).split('&');
var obj = {}, p;
for (var i = 0, n = pairs.length; i < n; i++) {
if (!pairs[i]) {
continue;
}
p = pairs[i].split('=');
obj[p[0]] = p[1];
}
return obj;
}
function appendQueryParams(url, params) {
return url + (url.indexOf('?') > -1 ? '&' : '?') + $.param(params);
}
function transferHash(originalUrl, newUrl) {
var pos = originalUrl.indexOf('#');
if (-1 === pos) {
return newUrl;
}
if (pos > 0) {
originalUrl = originalUrl.substr(pos);
}
return newUrl + originalUrl;
}
function error(msg) {
return $('<span class="lity-error"></span>').append(msg);
}
function imageHandler(target, instance) {
var desc = (instance.opener() && instance.opener().data('lity-desc')) || 'Image with no description';
var img = $('<img src="' + target + '" alt="' + desc + '"/>');
var deferred = _deferred();
var failed = function() {
deferred.reject(error('Failed loading image'));
};
img
.on('load', function() {
if (this.naturalWidth === 0) {
return failed();
}
deferred.resolve(img);
})
.on('error', failed)
;
return deferred.promise();
}
imageHandler.test = function(target) {
return _imageRegexp.test(target);
};
function inlineHandler(target, instance) {
var el, placeholder, hasHideClass;
try {
el = $(target);
} catch (e) {
return false;
}
if (!el.length) {
return false;
}
placeholder = $('<i style="display:none !important"></i>');
hasHideClass = el.hasClass('lity-hide');
instance
.element()
.one('lity:remove', function() {
placeholder
.before(el)
.remove()
;
if (hasHideClass && !el.closest('.lity-content').length) {
el.addClass('lity-hide');
}
})
;
return el
.removeClass('lity-hide')
.after(placeholder)
;
}
function youtubeHandler(target) {
var matches = _youtubeRegex.exec(target);
if (!matches) {
return false;
}
return iframeHandler(
transferHash(
target,
appendQueryParams(
'https://www.youtube' + (matches[2] || '') + '.com/embed/' + matches[4],
$.extend(
{
autoplay: 1
},
parseQueryParams(matches[5] || '')
)
)
)
);
}
function vimeoHandler(target) {
var matches = _vimeoRegex.exec(target);
if (!matches) {
return false;
}
return iframeHandler(
transferHash(
target,
appendQueryParams(
'https://player.vimeo.com/video/' + matches[3],
$.extend(
{
autoplay: 1
},
parseQueryParams(matches[4] || '')
)
)
)
);
}
function facebookvideoHandler(target) {
var matches = _facebookvideoRegex.exec(target);
if (!matches) {
return false;
}
if (0 !== target.indexOf('http')) {
target = 'https:' + target;
}
return iframeHandler(
transferHash(
target,
appendQueryParams(
'https://www.facebook.com/plugins/video.php?href=' + target,
$.extend(
{
autoplay: 1
},
parseQueryParams(matches[4] || '')
)
)
)
);
}
function googlemapsHandler(target) {
var matches = _googlemapsRegex.exec(target);
if (!matches) {
return false;
}
return iframeHandler(
transferHash(
target,
appendQueryParams(
'https://www.google.' + matches[3] + '/maps?' + matches[6],
{
output: matches[6].indexOf('layer=c') > 0 ? 'svembed' : 'embed'
}
)
)
);
}
function iframeHandler(target) {
return '<div class="lity-iframe-container"><iframe frameborder="0" allowfullscreen allow="autoplay; fullscreen" src="' + target + '"/></div>';
}
function winHeight() {
return document.documentElement.clientHeight
? document.documentElement.clientHeight
: Math.round(_win.height());
}
function keydown(e) {
var current = currentInstance();
if (!current) {
return;
}
// ESC key
if (e.keyCode === 27 && !!current.options('esc')) {
current.close();
}
// TAB key
if (e.keyCode === 9) {
handleTabKey(e, current);
}
}
function handleTabKey(e, instance) {
var focusableElements = instance.element().find(_focusableElementsSelector);
var focusedIndex = focusableElements.index(document.activeElement);
if (e.shiftKey && focusedIndex <= 0) {
focusableElements.get(focusableElements.length - 1).focus();
e.preventDefault();
} else if (!e.shiftKey && focusedIndex === focusableElements.length - 1) {
focusableElements.get(0).focus();
e.preventDefault();
}
}
function resize() {
$.each(_instances, function(i, instance) {
instance.resize();
});
}
function registerInstance(instanceToRegister) {
if (1 === _instances.unshift(instanceToRegister)) {
_html.addClass('lity-active');
_win
.on({
resize: resize,
keydown: keydown
})
;
}
$('body > *').not(instanceToRegister.element())
.addClass('lity-hidden')
.each(function() {
var el = $(this);
if (undefined !== el.data(_dataAriaHidden)) {
return;
}
el.data(_dataAriaHidden, el.attr(_attrAriaHidden) || null);
})
.attr(_attrAriaHidden, 'true')
;
}
function removeInstance(instanceToRemove) {
var show;
instanceToRemove
.element()
.attr(_attrAriaHidden, 'true')
;
if (1 === _instances.length) {
_html.removeClass('lity-active');
_win
.off({
resize: resize,
keydown: keydown
})
;
}
_instances = $.grep(_instances, function(instance) {
return instanceToRemove !== instance;
});
if (!!_instances.length) {
show = _instances[0].element();
} else {
show = $('.lity-hidden');
}
show
.removeClass('lity-hidden')
.each(function() {
var el = $(this), oldAttr = el.data(_dataAriaHidden);
if (!oldAttr) {
el.removeAttr(_attrAriaHidden);
} else {
el.attr(_attrAriaHidden, oldAttr);
}
el.removeData(_dataAriaHidden);
})
;
}
function currentInstance() {
if (0 === _instances.length) {
return null;
}
return _instances[0];
}
function factory(target, instance, handlers, preferredHandler) {
var handler = 'inline', content;
var currentHandlers = $.extend({}, handlers);
if (preferredHandler && currentHandlers[preferredHandler]) {
content = currentHandlers[preferredHandler](target, instance);
handler = preferredHandler;
} else {
// Run inline and iframe handlers after all other handlers
$.each(['inline', 'iframe'], function(i, name) {
delete currentHandlers[name];
currentHandlers[name] = handlers[name];
});
$.each(currentHandlers, function(name, currentHandler) {
// Handler might be "removed" by setting callback to null
if (!currentHandler) {
return true;
}
if (
currentHandler.test &&
!currentHandler.test(target, instance)
) {
return true;
}
content = currentHandler(target, instance);
if (false !== content) {
handler = name;
return false;
}
});
}
return {handler: handler, content: content || ''};
}
function Lity(target, options, opener, activeElement) {
var self = this;
var result;
var isReady = false;
var isClosed = false;
var element;
var content;
options = $.extend(
{},
_defaultOptions,
options
);
element = $(options.template);
// -- API --
self.element = function() {
return element;
};
self.opener = function() {
return opener;
};
self.options = $.proxy(settings, self, options);
self.handlers = $.proxy(settings, self, options.handlers);
self.resize = function() {
if (!isReady || isClosed) {
return;
}
content
.css('max-height', winHeight() + 'px')
.trigger('lity:resize', [self])
;
};
self.close = function() {
if (!isReady || isClosed) {
return;
}
isClosed = true;
removeInstance(self);
var deferred = _deferred();
// We return focus only if the current focus is inside this instance
if (
activeElement &&
(
document.activeElement === element[0] ||
$.contains(element[0], document.activeElement)
)
) {
try {
activeElement.focus();
} catch (e) {
// Ignore exceptions, eg. for SVG elements which can't be
// focused in IE11
}
}
content.trigger('lity:close', [self]);
element
.removeClass('lity-opened')
.addClass('lity-closed')
;
transitionEnd(content.add(element))
.always(function() {
content.trigger('lity:remove', [self]);
element.remove();
element = undefined;
deferred.resolve();
})
;
return deferred.promise();
};
// -- Initialization --
result = factory(target, self, options.handlers, options.handler);
element
.attr(_attrAriaHidden, 'false')
.addClass('lity-loading lity-opened lity-' + result.handler)
.appendTo('body')
.focus()
.on('click', '[data-lity-close]', function(e) {
if ($(e.target).is('[data-lity-close]')) {
self.close();
}
})
.trigger('lity:open', [self])
;
registerInstance(self);
$.when(result.content)
.always(ready)
;
function ready(result) {
content = $(result)
.css('max-height', winHeight() + 'px')
;
element
.find('.lity-loader')
.each(function() {
var loader = $(this);
transitionEnd(loader)
.always(function() {
loader.remove();
})
;
})
;
element
.removeClass('lity-loading')
.find('.lity-content')
.empty()
.append(content)
;
isReady = true;
content
.trigger('lity:ready', [self])
;
}
}
function lity(target, options, opener) {
if (!target.preventDefault) {
opener = $(opener);
} else {
target.preventDefault();
opener = $(this);
target = opener.data('lity-target') || opener.attr('href') || opener.attr('src');
}
var instance = new Lity(
target,
$.extend(
{},
opener.data('lity-options') || opener.data('lity'),
options
),
opener,
document.activeElement
);
if (!target.preventDefault) {
return instance;
}
}
lity.version = '2.4.1';
lity.options = $.proxy(settings, lity, _defaultOptions);
lity.handlers = $.proxy(settings, lity, _defaultOptions.handlers);
lity.current = currentInstance;
$(document).on('click.lity', '[data-lity]', lity);
return lity;
}));

View File

@ -0,0 +1,231 @@
/* global Scrutari */
/**
* Surcharge et complément du client ScrutariJs pour le site librevous.org
*/
Scrutari.Lav = {};
/**
* Adresse du serveur Scrutari
*/
Scrutari.Lav.SCRUTARI_URL = "https://sct2.scrutari.net/sct/april_libreavous/";
/**
* Nombre de fiches dans une pagination
*/
Scrutari.Lav.PAGINATION_LENGTH = 20;
/**
* Tableau des différentes paginations, la première est la pagination sur la totalité des sites, les autres sont les paginations par site
*/
Scrutari.Lav.PAGINATION_ARRAY = ["", "libreavous", "librealire"];
/**
* Indication s'il s'agit de la version de développement
*/
Scrutari.Lav.DEV = false;
/**
* Fonction utilitaire de formatage de la séquence de recherche pour l'affichage
*/
Scrutari.Lav.formatSearchSequence = function (client, searchUnit) {
var q = searchUnit.getQ();
q = q.replace(/\&\&/g, '@%et%@');
q = q.replace(/\|\|/g, '@%ou%@');
q = q.replace(/\*/g, '@%*%@');
q = Scrutari.escape(q);
q = q.replace(/@%/g, '<span class="lav-Operateur">');
q = q.replace(/%@/g, '</span>');
return q;
};
/**
* Fonction principale d'initialisation du client. Remplace Scrutari.DefaultUi.init
*/
Scrutari.Lav.init = function (client) {
var scrutariMeta = client.scrutariMeta;
client.lav = {}; //propriété lav pour conserver des données propres à ce client
_initLav();
if (Scrutari.Lav.DEV) { //Code propre à la version de développement, en production la structure est en dur dans le squelette Spip
$("#" + client.clientId).html(client.compileStructure("main"));
$("#zone").html(client.compileStructure("main", {
noLoc: false,
withComment: true
}));
}
client.initForms();
client.initActions();
client.initChangeListeners();
client.checkInitialQuery();
function _initLav() {
let paginationArray = new Array();
for(let name of Scrutari.Lav.PAGINATION_ARRAY) {
let active = false;
let suffix = "-" + name;
let radio = name;
if (!name) { // valeurs particulières pour « tous »
active = true;
suffix = "";
radio = "tous";
}
paginationArray.push({
name: name,
active: active,
suffix: suffix,
radio: radio
});
}
client.lav.paginationArray = paginationArray;
}
}
/**
* Fonction d'enrichissement du processus d'affichage des résultats.
* la méthode addPaginisations de la classe Scrutari.SearchUnit est remplacée pour que trois paginations
* soient créés : celle, normale, de toutes les fiches et une par site
* Remplace Scrutari.DefaultUi.newSearchDisplay
*/
Scrutari.Lav.newSearchDisplay = function (client, searchUnit) {
var searchDisplay = new Scrutari.SearchDisplay(client, searchUnit);
searchDisplay.addPaginations = function ($paginationBlock) {
_addPaginations($paginationBlock);
};
var libreavousArray = new Array();
var librealireArray = new Array();
var length = searchUnit.ficheGroupArray.length;
if (length > 0) {
for(let fiche of searchUnit.ficheGroupArray[0].ficheArray) {
if (fiche.codecorpus === 1222) {
libreavousArray.push(fiche);
} else {
librealireArray.push(fiche);
}
}
}
var arrays = {
libreavous: libreavousArray,
librealire: librealireArray
};
return searchDisplay;
function _addPaginations($paginationBlock) {
$paginationBlock.html(client.render("pagination_lav", {array: client.lav.paginationArray}));
client.$count("total-tous", 'update', searchUnit.getFicheCount());
for(let config of client.lav.paginationArray) {
let pagination;
if (config.name) {
client.$count("total-" + config.name, 'update', arrays[config.name].length);
pagination = new Scrutari.Pagination(client, arrays[config.name], config.name);
} else {
pagination = new Scrutari.Pagination(client, searchUnit);
}
client.putPagination(config.name, pagination);
pagination.change(1);
}
}
};
/**
* Actions propres au client
*/
Scrutari.Lav.actionHandler = function (client, button, action, target) {
switch(action) {
case 'copyPermalink':
navigator.clipboard.writeText($(button).attr("href"));
break;
default:
return false;
}
return true;
};
/**
* Personnalisation des écouteurs actions sur les boutons
*/
Scrutari.Lav.changeHandler = function (client, element, name) {
switch(name) {
case 'lav-site':
if (element.checked) {
_setSiteFilter(element.value);
}
return true;
default:
return false;
}
function _setSiteFilter (value) {
let suffix = "";
for(let pagination of client.lav.paginationArray) {
if (value === pagination.radio) {
pagination.active = true;
suffix = pagination.suffix;
} else {
pagination.active = false;
}
}
let activeBlockName = "ficheGroup" + suffix;
client.$block("ficheGroup", "*").each(function (index, element) {
if (element.dataset.scrutariBlock === activeBlockName) {
client.show(element);
} else {
client.hide(element);
}
});
}
};
Scrutari.Lav.mainsearchCallback = function (client, searchUnit) {
$("#scrutari_lav_sequence").html(Scrutari.Lav.formatSearchSequence(client, searchUnit));
};
Scrutari.Lav.getApiSettings = function () {
return {
name: "libreavous",
engineUrl: Scrutari.Lav.SCRUTARI_URL,
lang: "fr",
origin: "site",
paginationLength: Scrutari.Lav.PAGINATION_LENGTH,
limit: -1
};
};
Scrutari.Lav.getInitOptions = function () {
return {
withCorpus: false,
ficheTarget: "_blank",
ficheBodyList: "fiche_mtitre,fiche_msoustitre,libreavous_start_ul,fiche_primaryattributearray,fiche_mcomplementarray,fiche_secondaryattributearray,fiche_motclearray,fiche_bythesaurusarray,libreavous_end_ul", //Ajout de libreavous_start_ul et libreavous_end_ul, retrait de fiche_year,
historyAtLast: true,
ignoreList: "area-title,area-stats,modal-*", //Utilisé en mode développement
hooks: {
completeFiche : function (searchUnit, fiche, categoryName) { //Extrait le numéro du titre
let start = fiche.mtitre[0];
let numero = "";
if (start.startsWith("#")) {
let idx = start.indexOf("-");
if (idx > 0) {
numero = start.substring(0, idx).trim();
fiche.mtitre[0] = start.substring(idx + 1);
}
}
fiche._numero = numero;
}
},
functions: {
uiInit: Scrutari.Lav.init,
ignoreElement: null,
isFilterEnable: null,
initFilterByQuery: null,
newSearchDisplay: Scrutari.Lav.newSearchDisplay,
startLoading: null,
endLoading: null,
actionHandler: Scrutari.Lav.actionHandler,
changeHandler: Scrutari.Lav.changeHandler
},
searchCallbacks: {
mainsearch: Scrutari.Lav.mainsearchCallback,
qidsearch: Scrutari.Lav.mainsearchCallback
}
};
};

View File

@ -0,0 +1,52 @@
var SCRUTARI_HTML = {
_name:'default',
structure:{
'area-input':'<div data-scrutari-area="input" class="scrutari-area-Input">\n <div>\n <input type="search" size="40" name="q" value="">\n <button type="submit">_ button_submit</button>\n </div>\n <button type="button" data-scrutari-action="parametersDisplay" class="scrutari-Hidden" data-scrutari-state="off">\n _ button_parameters\n </button>\n</div>',
'area-parameters':'<div data-scrutari-area="parameters" class="scrutari-area-Parameters scrutari-Hidden">\n {{panel-options}}\n {{panel-corpus}}\n {{panel-base}}\n {{panel-lang}}\n {{panel-category}}\n <div class="scrutari-area-Resubmit">\n <button type="submit">_ button_resubmit</button>\n </div>\n</div>',
'area-poweredby':'<div class="scrutari-area-Poweredby scrutari-Hidden" data-scrutari-hidden="empty">\n <p>\n <a href="http://www.scrutari.net" target="_blank">\n <span class="scrutari-icon-Logo"></span> _ link_poweredby\n </a>\n </p>\n</div>',
'area-result':'<div data-scrutari-area="result" class="scrutari-area-Result">\n <div data-scrutari-block="paginationBlock"></div>\n <div>\n {{result-links}}\n </div>\n <div>\n {{result-history}}\n </div>\n <div>\n {{result-subsearch}}\n </div>\n</div>',
'area-stats':'<div data-scrutari-area="stats" class="scrutari-area-Stats">\n {{stats-table}}\n</div>',
'area-title':'<div data-scrutari-area="title" class="scrutari-area-Title">\n <p>\n <span data-scrutari-label="mainTitle"></span>\n </p>\n</div>',
'main-form':'<form data-scrutari-form="mainsearch" role="search">\n {{area-input}}\n {{area-parameters}}\n</form>',
'main':'{{area-title}}\n{{main-form}}\n{{area-stats}}\n{{area-result}}\n{{area-poweredby}}\n{{modal-*}}',
'modal-help_mode':'<aside class="scrutari-Hidden" data-scrutari-modal="help_mode" aria-hidden="true">\n <header>\n _ mode_help\n </header>\n <div>\n _ help_mode.html\n </div>\n</aside>',
'modal-help_periode':'<aside class="scrutari-Hidden" data-scrutari-modal="help_periode" aria-hidden="true">\n <header>\n _ periode_help\n </header>\n <div>\n _ help_periode.html\n </div>\n</aside>',
'modal-help_ponderation':'<aside class="scrutari-Hidden" data-scrutari-modal="help_ponderation" aria-hidden="true">\n <header>\n _ ponderation_help\n </header>\n <div>\n _ help_ponderation.html\n </div>\n</aside>',
'modal-loading':'<aside class="scrutari-Hidden" data-scrutari-modal="loading" aria-hidden="true">\n <div>\n <span class="scrutari-icon-Loader"></span> _ loading_search\n </div>\n</aside>',
'panel-base':'<details class="scrutari-Hidden" data-scrutari-panel="base">\n <summary>\n _ title_filter_base <span data-scrutari-label="baseFilter" class="scrutari-panel-State scrutari-Disabled" data-scrutari-alternate="_ filter_on">_ filter_off</span>\n </summary>\n <div>\n <div class="scrutari-panel-Toolbar">\n <span class="scrutari-panel-ButtonGroup">\n <button type="button" data-scrutari-action="enablePanel" data-scrutari-target="base" data-scrutari-state="off">\n <span data-scrutari-alternate="_ button_filter_off">_ button_filter_on</span>\n </button>\n </span>\n <span class="scrutari-panel-ButtonGroup">\n <button type="button" data-scrutari-action="checkAll" data-scrutari-target="base" disabled>_ button_check_all</button>\n <button type="button" data-scrutari-action="uncheckAll" data-scrutari-target="base" disabled>_ button_uncheck_all</button>\n </span>\n </div>\n <div class="scrutari-panel-Columns scrutari-Disabled" data-scrutari-block="columnsBlock-base">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n </div>\n</details>',
'panel-category':'<details class="scrutari-Hidden" data-scrutari-panel="category">\n <summary>\n _ title_filter_category <span data-scrutari-label="categoryFilter" class="scrutari-panel-State scrutari-Disabled" data-scrutari-alternate="_ filter_on">_ filter_off</span>\n </summary>\n <div>\n <div class="scrutari-panel-Toolbar">\n <span class="scrutari-panel-ButtonGroup">\n <button type="button" data-scrutari-action="enablePanel" data-scrutari-target="category" data-scrutari-state="off">\n <span data-scrutari-alternate="_ button_filter_off">_ button_filter_on</span>\n </button>\n </span>\n <span class="scrutari-panel-ButtonGroup">\n <button type="button" data-scrutari-action="checkAll" data-scrutari-target="category" disabled>_ button_check_all</button>\n <button type="button" data-scrutari-action="uncheckAll" data-scrutari-target="category" disabled>_ button_uncheck_all</button>\n </span>\n </div>\n <div class="scrutari-panel-Columns scrutari-Disabled" data-scrutari-block="columnsBlock-category">\n <div></div>\n <div></div>\n <div></div>\n <div></div> \n </div>\n </div>\n</details>',
'panel-corpus':'<details class="scrutari-Hidden" data-scrutari-panel="corpus">\n <summary>\n _ title_filter_corpus <span data-scrutari-label="corpusFilter" class="scrutari-panel-State scrutari-Disabled" data-scrutari-alternate="_ filter_on">_ filter_off</span>\n </summary>\n <div>\n <div class="scrutari-panel-Toolbar">\n <span class="scrutari-panel-ButtonGroup">\n <button type="button" data-scrutari-action="enablePanel" data-scrutari-target="corpus" data-scrutari-state="off">\n <span data-scrutari-alternate="_ button_filter_off">_ button_filter_on</span>\n </button>\n </span>\n <span class="scrutari-panel-ButtonGroup">\n <button type="button" data-scrutari-action="checkAll" data-scrutari-target="corpus" disabled>_ button_check_all</button>\n <button type="button" data-scrutari-action="uncheckAll" data-scrutari-target="corpus" disabled>_ button_uncheck_all</button>\n </span>\n </div>\n <div class="scrutari-panel-Columns scrutari-Disabled" data-scrutari-block="columnsBlock-corpus">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n </div>\n</details>',
'panel-lang':'<details class="scrutari-Hidden" data-scrutari-panel="lang">\n <summary>\n _ title_filter_lang <span data-scrutari-label="langFilter" class="scrutari-panel-State scrutari-Disabled" data-scrutari-alternate="_ filter_on">_ filter_off</span>\n </summary>\n <div>\n <div class="scrutari-panel-Toolbar">\n <span class="scrutari-panel-ButtonGroup">\n <button type="button" data-scrutari-action="enablePanel" data-scrutari-target="lang" data-scrutari-state="off">\n <span data-scrutari-alternate="_ button_filter_off">_ button_filter_on</span>\n </button>\n </span>\n <span class="scrutari-panel-ButtonGroup">\n <button type="button" data-scrutari-action="checkAll" data-scrutari-target="lang" disabled>_ button_check_all</button>\n <button type="button" data-scrutari-action="uncheckAll" data-scrutari-target="lang" disabled>_ button_uncheck_all</button>\n </span>\n </div>\n <div class="scrutari-panel-Columns scrutari-Disabled" data-scrutari-block="columnsBlock-lang">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n </div>\n</details>',
'panel-options':'<details data-scrutari-panel="options">\n <summary>\n _ title_options\n </summary>\n <div>\n <div class="scrutari-panel-Columns">\n <div>\n <p><span>_ mode_title</span><button data-scrutari-action="showModal" data-scrutari-target="help_mode" type="button" title="_ mode_help">?</button></p>\n <div>\n <label><input type="radio" name="q-mode" value="intersection" checked> _ mode_intersection</label>\n <label><input type="radio" name="q-mode" value="union"> _ mode_union</label>\n <label><input type="radio" name="q-mode" value="operation"> _ mode_operation</label>\n <label><input type="checkbox" name="wildchar" value="end" checked> _ wildchar_end</label>\n </div>\n </div>\n <div>\n <p><span>_ ponderation_title</span><button data-scrutari-action="showModal" data-scrutari-target="help_ponderation" type="button" title="_ ponderation_help">?</button></p>\n <div>\n <label><input type="radio" name="ponderation" value="pertinence" checked> _ ponderation_pertinence</label>\n <label><input type="radio" name="ponderation" value="date"> _ ponderation_date</label>\n </div>\n </div>\n <div>\n <p><span>_ periode_title</span><button data-scrutari-action="showModal" data-scrutari-target="help_periode" type="button" title="_ periode_help">?</button></p>\n <div>\n <input type="text" name="periode" value="" size="20">\n </div>\n </div>\n </div>\n </div>\n</details>',
'result-history':'<div class="scrutari-Hidden" data-scrutari-hidden="start">\n <p class="scrutari-links-Title">_ title_history</p>\n <div data-scrutari-block="historyList">\n </div>\n</div>',
'result-links':'<div class="scrutari-Hidden" data-scrutari-hidden="empty">\n <p class="scrutari-links-Title">_ title_share</p>\n <p class="scrutari-links-Permalink">\n <a href="#" data-scrutari-link="permalink" target="_blank" title="_ link_permalink" >\n <span data-scrutari-label="permalinkValue"></span>\n </a>\n </p>\n <p class="scrutari-links-Title">_ title_download</p>\n <p>\n <a href="#" data-scrutari-link="ods" target="_blank" title="_ link_ods" class="scrutari-links-ButtonLike">ods</a>\n <a href="#" data-scrutari-link="csv" target="_blank" title="_ link_csv" class="scrutari-links-ButtonLike">csv</a>\n </p>\n <p class="scrutari-links-Title">_ title_feed</p>\n <p>\n <a href="#" data-scrutari-link="atom" target="_blank" title="_ link_atom" class="scrutari-links-ButtonLike">atom</a>\n </p>\n</div>',
'result-subsearch':'<div class="scrutari-Hidden" data-scrutari-hidden="threshold">\n <form data-scrutari-form="subsearch" role="search">\n <p class="scrutari-subsearch-Title">_ title_subsearch</p>\n <div class="scrutari-subsearch-Form">\n <input type="search" size="40" name="q">\n <button type="submit">_ button_subsearch</button>\n </div>\n </form>\n</div>',
'stats-filter':'<tr class="scrutari-Hidden" data-scrutari-hidden="filter" data-scrutari-count="stats-filter">\n <td class="scrutari-stats-Cell"><abbr class="scrutari-stats-Abbr" title="_ stats_filter_title">_ stats_filter_short</abbr></td>\n <td class="scrutari-stats-Cell scrutari-stats-Number"><span class="scrutari-stats-Count" data-scrutari-component="value"></span></td>\n <td class="scrutari-stats-Cell scrutari-stats-Titles"><span data-scrutari-component="titles"></span></td>\n</tr>',
'stats-global':'<tr class="scrutari-Hidden" data-scrutari-hidden="init" data-scrutari-count="stats-global">\n <td class="scrutari-stats-Cell"><abbr class="scrutari-stats-Abbr" title="_ stats_global_title">_ stats_global_short</abbr></td>\n <td class="scrutari-stats-Cell scrutari-stats-Number"><span class="scrutari-stats-Count" data-scrutari-component="value"></span></td>\n</tr>',
'stats-result':'<tr class="scrutari-Hidden" data-scrutari-hidden="start" data-scrutari-count="stats-result"> \n <td class="scrutari-stats-Cell"><abbr class="scrutari-stats-Abbr" title="_ stats_result_title">_ stats_result_short</abbr></td>\n <td class="scrutari-stats-Cell scrutari-stats-Number"><span class="scrutari-stats-Count" data-scrutari-component="value"></span></td>\n</tr>',
'stats-table':'<table class="scrutari-stats-Table">\n {{stats-global}}\n {{stats-filter}}\n {{stats-result}}\n </table>'
},
templates:{
'base':'<p>\n<label class="scrutari-Label" {{if phraseMap.longtitle}}title="{{> phraseMap.longtitle}}"{{/if}}><input type="checkbox" name="base" value="{{:codebase}}" data-scrutari-title="{{> title}}">\n{{if baseicon}}\n<img src="{{:baseicon}}" alt="" class="scrutari-panel-Icon">\n{{/if}}\n<span data-scrutari-component="stat-text">{{> title}} <small>(<span data-scrutari-stat-type="base" data-scrutari-stat-key="{{:codebase}}" data-scrutari-stat-default="{{:stats.fiche}}"></span>{{:~scrutari_format(stats.fiche)}})</small></span>\n</label>\n</p>',
'category':'<p>\n<label class="scrutari-Label" {{if phraseMap.description}}title="{{> phraseMap.description}}"{{/if}}>\n<input type="checkbox" name="category" value="{{:name}}" data-scrutari-title="{{> title}}">\n<span data-scrutari-component="stat-text">{{> title}} <small>(<span data-scrutari-stat-type="category" data-scrutari-stat-key="{{:name}}" data-scrutari-stat-default="{{:stats.fiche}}"></span>{{:~scrutari_format(stats.fiche)}})</small></span>\n</label>\n</p>',
'corpus':'<p>\n<label class="scrutari-Label"><input type="checkbox" name="corpus" value="{{:codecorpus}}" data-scrutari-title="{{> title}}">\n <span data-scrutari-component="stat-text">{{> title}} <small>(<span data-scrutari-stat-type="corpus" data-scrutari-stat-key="{{:codecorpus}}" data-scrutari-stat-default="{{:stats.fiche}}"></span>{{:~scrutari_format(stats.fiche)}})</small></span>\n</label>\n</p>',
'fiche':'<div class="scrutari-fiche-Block" data-scrutari-block="fiche-{{:codefiche}}">\n{{include tmpl="fiche_icon" /}}\n<div class="scrutari-fiche-Body {{if _thumbnail}}scrutari-fiche-ThumbnailBody{{/if}}">\n {{for _bodyTemplateArray ~fiche=#data}}\n {{include ~fiche tmpl=~scrutari_client.getTemplate(#data) /}}\n {{/for}}\n</div>\n</div>',
'fiche_attribute':'{{if type!=="block"}}\n<p class="scrutari-fiche-Attribute">\n <span class="scrutari-label-Attribute">{{>title}}{{>~scrutari_loc("_ colon")}}</span>\n {{for valueArray ~len=valueArray.length}}\n {{:~scrutari_mark(#data)}}{{if #index != (~len -1)}}, {{/if}}\n {{/for}}\n</p>\n{{else}}\n<div class="scrutari-fiche-AttributeBlock">\n <p class="scrutari-fiche-AttributeTitle">\n <span class="scrutari-label-Attribute">{{>title}}{{>~scrutari_loc("_ colon")}}</span>\n </p>\n <div class="scrutari-fiche-AttributeValues">\n {{for valueArray ~len=valueArray.length}}\n <p class="scrutari-fiche-AttributeValue">\n {{:~scrutari_mark(#data)}}\n </p>\n {{/for}}\n </div>\n</div>\n{{/if}}',
'fiche_bythesaurusarray':'{{if _bythesaurusArray}}\n {{for _bythesaurusArray}}\n <p class="scrutari-fiche-Motcle">\n <span class="scrutari-label-Motcle">\n {{> thesaurus.title}}{{>~scrutari_loc("_ colon")}}\n </span>\n {{for motcleArray ~len=motcleArray.length}}\n {{if mlabelArray}}{{for mlabelArray}}{{if #index > 0}}/{{/if}}{{:~scrutari_mark(mvalue)}}{{/for}}{{/if}}{{if #index != (~len -1)}}, {{/if}}\n {{/for}}\n </p>\n {{/for}}\n{{/if}}',
'fiche_icon':'{{if _thumbnail}}\n <div class="scrutari-fiche-Thumbnail">\n <img class="scrutari-fiche-ThumbnailImg" alt="" src="{{:_thumbnail}}"/>\n {{if _icon}}\n <img class="scrutari-fiche-ThumbnailIcon" alt="" src="{{:_icon}}"/>\n {{/if}}\n </div>\n{{else _icon}}\n <div class="scrutari-fiche-Icon"><img alt="" src="{{:_icon}}"/></div>\n{{/if}}',
'fiche_mcomplementarray':'{{if mcomplementArray}}\n {{for mcomplementArray}}\n <p class="scrutari-fiche-Complement">\n <span class="scrutari-label-Complement">\n {{>title}}{{>~scrutari_loc("_ colon")}}\n </span>\n {{:~scrutari_mark(mvalue)}}\n </p>\n {{/for}}\n{{/if}}',
'fiche_motclearray':'{{if _motcleArray}}\n <p class="scrutari-fiche-Motcle">\n <span class="scrutari-label-Motcle">\n {{if _motcleArray.length == 1}}\n {{>~scrutari_loc("_ fiche_motscles_one")}}\n {{else}}\n {{>~scrutari_loc("_ fiche_motscles_many")}}\n {{/if}}\n </span>\n {{for _motcleArray ~len=_motcleArray.length}}\n {{if mlabelArray}}{{for mlabelArray}}{{if #index > 0}}/{{/if}}{{:~scrutari_mark(mvalue)}}{{/for}}{{/if}}{{if #index != (~len -1)}}, {{/if}}\n {{/for}}\n </p>\n{{/if}}',
'fiche_msoustitre':'{{if msoustitre}}\n <p class="scrutari-fiche-Soustitre">\n {{:~scrutari_mark(msoustitre)}}\n </p>\n{{/if}}',
'fiche_mtitre':'<p class="scrutari-fiche-Titre">\n <a href="{{:href}}"\n class="scrutari-fiche-Link"\n data-scrutari-link="fiche_{{:codefiche}}"\n {{if _target}} target="{{:_target}}"{{/if}}>\n {{if mtitre}}\n {{:~scrutari_mark(mtitre)}}\n {{else}}\n {{:href}}\n {{/if}}\n </a>\n</p>',
'fiche_primaryattributearray':'{{if _primaryAttributeArray}}\n {{for _primaryAttributeArray tmpl="fiche_attribute" /}}\n{{/if}}',
'fiche_secondaryattributearray':'{{if _secondaryAttributeArray}}\n{{for _secondaryAttributeArray tmpl="fiche_attribute" /}}\n{{/if}}',
'fiche_year':'{{if year}}\n <p class="scrutari-fiche-Year">\n {{:year}}\n </p>\n{{/if}}',
'history':'<div data-scrutari-block="{{:name}}" class="scrutari-history-Block scrutari-history-Active">\n <div class="scrutari-history-Search">\n <button data-scrutari-action="loadHistory" data-scrutari-target="{{:name}}" class="scrutari-history-Load" {{if fichestat == 0}}disabled="disabled"{{/if}}>\n {{>sequence}} ({{:fichestat}})\n </button>\n <button data-scrutari-action="removeHistory" data-scrutari-target="{{:name}}" class="scrutari-history-Remove" title="{{>~scrutari_loc(\'_ button_remove\')}}"><span aria-hidden="true">&times;</span></button>\n </div>\n <div class="scrutari-history-Subsearch" data-scrutari-component="subsearch"></div>\n</div>',
'lang':'<p>\n<label class="scrutari-Label"><input type="checkbox" name="lang" value="{{:lang}}" data-scrutari-title="{{:lang}}">\n <span data-scrutari-component="stat-text">{{> title}} [{{:lang}}] <small>(<span data-scrutari-stat-type="lang" data-scrutari-stat-key="{{:lang}}" data-scrutari-stat-default="{{:fiche}}"></span>{{:~scrutari_format(fiche)}})</small></span>\n</label>\n</p>',
'loading':'<span class="scrutari-icon-Loader"></span> {{>~scrutari_loc(\'_ loading_pagination\')}}',
'pagination_empty':'<p><em>{{>~scrutari_loc("_ result_none")}}</em></p>\n{{if withFilter}}\n<p><em>{{>~scrutari_loc("_ result_fitlerwarning")}}</em></p>\n{{/if}}\n{{if searchUnit.notfoundArray.length > 0}}\n<p>{{>~scrutari_loc("_ result_notfound")}}{{>~scrutari_loc("_ colon")}}</p>\n<ul>\n {{for searchUnit.notfoundArray}}\n <li>\n {{> text}}\n {{if neighbourArray.length > 0}}\n <small>(<em>{{>~scrutari_loc("_ result_neighbourlist")}}{{>~scrutari_loc("_ colon")}}</em> {{for neighbourArray ~len=neighbourArray.length}}{{> neighbour}}{{if #index != (~len -1)}}, {{/if}}{{/for}})</small>\n {{else}}\n <small>(<em>{{>~scrutari_loc("_ result_noneighbour")}}</em>)</small>\n {{/if}}\n </li>\n {{/for}}\n</ul>\n{{/if}}',
'pagination_groups':'<div class="scrutari-group-List" role="tablist">\n{{for array}}\n <button role="tab" class="scrutari-group-Tab" {{if active}}disabled{{/if}} data-scrutari-action="ficheGroupTab" {{if description}}title="{{>description}}"{{/if}}\n data-scrutari-target="{{:name}}">\n {{>title}} ({{:fichestat}})\n </button>\n{{/for}}\n</div>\n{{for array}}\n<div class="scrutari-group-Content {{if !active}}scrutari-Hidden{{/if}}" data-scrutari-block="ficheGroup-{{:name}}" data-scrutari-name="{{:name}}">\n <div data-scrutari-block="topTabs-{{:name}}"></div>\n <div data-scrutari-block="ficheList-{{:name}}"></div>\n <div data-scrutari-block="bottomTabs-{{:name}}"></div>\n</div>\n{{/for}}',
'pagination_unique':'<div data-scrutari-block="topTabs"></div>\n<div data-scrutari-block="ficheList"></div>\n<div data-scrutari-block="bottomTabs"></div>',
'tabs':'<div class="scrutari-pagination-TabList">\n {{for tabArray}}\n {{if state===\'active\'}}\n <button class="scrutari-pagination-Tab" disabled>{{>title}}</button>\n {{else state===\'etc\'}}\n <span class="scrutari-pagination-Etc">{{>title}}</span>\n {{else}}\n <button\n class="scrutari-pagination-Tab"\n role="tab"\n data-scrutari-action="paginationTab"\n data-scrutari-type="{{:~root.type}}"\n data-scrutari-position="{{:~root.position}}"\n data-scrutari-number="{{:number}}"\n {{if ~root.ficheGroupName}} data-scrutari-fiche-group-name="{{:~root.ficheGroupName}}"{{/if}}>{{>title}}</button>\n {{/if}}\n {{/for}}\n</div>'
}
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 743 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 725 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,86 @@
var SCRUTARI_L10N = {
lang:'en',
'_ advice_complexity':'Check if you can simplify the search',
'_ and':'AND',
'_ button_check_all':'Check all',
'_ button_close':'Close',
'_ button_filter_off':'Turn filter off',
'_ button_filter_on':'Turn filter on',
'_ button_parameters':'Filters and options',
'_ button_remove':'Remove',
'_ button_resubmit':'Relaunching research',
'_ button_submit':'Search',
'_ button_uncheck_all':'Uncheck all',
'_ colon':':',
'_ error.empty.parametervalue':'Error: the search only has meaningless characters!',
'_ error.empty.searchtoken':'Empty search term',
'_ error.unknown.attribute':'Unknown attribute',
'_ error.unknown.fichesearchresult':'Search ID unknown',
'_ error.unknown.operandtype':'Operand type unknown',
'_ error.unknown.scope':'Unknown field',
'_ error.wrong.missingword':'Missing word',
'_ error.wrong.notletterordigitcharacter':'Incorrect character',
'_ error.wrong.operand_add':'Malformed operand',
'_ error.wrong.operand_date':'Malformed date',
'_ error.wrong.operationsyntax':'Syntax error in the advanced search',
'_ error.wrong.unclosedquote':'Unclosed quote',
'_ error.wrong.unexpectedspace':'Unexpected space',
'_ fiche_motscles_many':'Keywords:',
'_ fiche_motscles_one':'Keyword:',
'_ filter_off':'[off]',
'_ filter_on':'[on]',
'_ label_base_many':'Bases',
'_ label_base_one':'Base',
'_ label_category_many':'Categories',
'_ label_category_one':'Category',
'_ label_corpus_many':'Corpus',
'_ label_corpus_one':'Corpus',
'_ label_lang_many':'Languages',
'_ label_lang_one':'Language',
'_ link_atom':'ATOM feed',
'_ link_csv':'Table in CSV format',
'_ link_ods':'Table in ODS format',
'_ link_permalink':'Permalink',
'_ link_poweredby':'Search powered by Scrutari',
'_ loading_pagination':'Loading…',
'_ loading_search':'Searching…',
'_ mode_help':'Help on relationships between search terms',
'_ mode_intersection':'And',
'_ mode_operation':'Advanced',
'_ mode_title':'Relationship between terms:',
'_ mode_union':'Or',
'_ or':'OR',
'_ periode_help':'Help on limiting to a period',
'_ periode_title':'Limited to a period:',
'_ ponderation_date':'Date',
'_ ponderation_help':'Help on classification priority',
'_ ponderation_pertinence':'Relevance',
'_ ponderation_title':'Classification priority:',
'_ result_none':'No results for the requested search',
'_ stats_filter_short':'Filter:',
'_ stats_filter_title':'Number of references the search will apply to on the basis of the active filters',
'_ stats_global_short':'Total:',
'_ stats_global_title':'Total number of references in the search engine',
'_ stats_result_short':'Result:',
'_ stats_result_title':'Number of references that answer the search criteria',
'_ title_download':'Retrieving all references:',
'_ title_feed':'Subscribe to search',
'_ title_filter_base':'Database filter',
'_ title_filter_category':'Document type filter',
'_ title_filter_corpus':'Corpus filter',
'_ title_filter_lang':'Language filter',
'_ title_history':'Search\u00A0history:',
'_ title_main':'Scrutari search',
'_ title_options':'Search options\u00A0',
'_ title_share':'Share:',
'_ title_subsearch':'Searching latest results:',
'_ wildchar_end':'“*” is added automatically at the end of the word',
'_ button_subsearch':'Filter',
'_ result_fitlerwarning':'Reminder: a filter is currently active',
'_ result_notfound':'Terms not found',
'_ result_neighbourlist':'Similar terms found',
'_ result_noneighbour':'No similar terms were found',
'_ help_mode.html':'<p> <strong>Simple search (</strong><em><strong>And</strong></em><strong>&nbsp;/ </strong><em><strong>Or</strong></em> <strong>options):</strong> the spaces are delimiters for the search terms; if the option <em>And</em> is selected, a reference has to include all the search terms; if the selected option is <em>Or</em>, a reference has to include at least one of the terms. </p><p> The asterisk <kbd>*</kbd> indicates a truncation: </p><ul> <li> <p> <kbd>gov*</kbd>: all words beginning with &ldquo;gov&rdquo; </p> </li> <li> <p> <kbd>*logy</kbd>: all words ending in &ldquo;logy&rdquo; </p> </li> <li> <p> <kbd>*eco*</kbd>: all words including &ldquo;eco&rdquo; </p> </li> </ul><p> If the option <em>&ldquo;*&rdquo; automatically added to the end of the word</em> is ticked, all the words are considered to have a truncation on the right (unless they are in quotation marks). </p><p>We use straight quotation marks to indicate a sequence of words. It is possible to indicate truncations inside quotation marks:</p><ul> <li> <p> <kbd>"organic farming"</kbd>: ignores the term organic if it is not followed by farming </p> </li> <li> <p> <kbd>"part"</kbd>: only searches for the word &ldquo;part&rdquo; even if the automatic asterisk to the right is activated </p> </li> <li> <p> <kbd>"pub* pol*"</kbd>: search for sequences of a word beginning with &ldquo;pub&rdquo; followed by a word beginning with &ldquo;pol&rdquo; </p> </li> </ul><p>The following rules apply:</p><ul> <li> <p>searches do not take accents and uppercase letters into account</p> </li> <li> <p>characters other than letters and figures are ignored</p> </li> <li> <p>the search engine does not propose corrections for typing errors and spelling mistakes</p> </li> <li> <p>the search engine does not index in the references words with one or two letters, such as common words which are not significant in a given language (&ldquo;les, avec, par&rdquo; will be ignored in French, &ldquo;the&rdquo; is ignored in English but not in French, to include searches on the term &ldquo;th&eacute;&rdquo;)</p> </li> </ul><p> <br> <strong>Advanced search (&ldquo;Advanced&rdquo; option):</strong> the advanced search uses the same principles as the simple search in terms of syntax (asterisk <kbd>*</kbd> for truncations, quotation marks for sequences) but the space is no longer a delimiter; instead, we use three operators: </p><ul> <li> <p> <kbd>&amp;&amp;</kbd>: And </p> </li> <li> <p> <kbd>||</kbd>: Or </p> </li> <li> <p> <kbd>!</kbd>: No </p> </li> </ul><p>We use brackets to form logical groups.</p><p>Examples:</p><ul> <li> <p> <kbd>farming &amp;&amp;~!organic</kbd>: searches for references containing a word beginning with farming and not containing any words beginning with organic </p> </li> <li> <p> <kbd>farming &amp;&amp;~!(organic || country)</kbd>: searches for references containing a word beginning with farming and not containing either words beginning with organic or words beginning with country </p> </li> </ul><p>All syntax errors (including the use of characters other than numbers, unauthorized letters and a space for separating words not in quotation marks) produce an error message.</p><p>It is possible to restrict the search for a word to a given field by prefixing a term. Possible prefixes are:</p><ul> <li> <p> <em>title:</em> = only in titles </p> </li> <li> <p> <em>subtitle:</em> = only in subtitles </p> </li> <li> <p> <em>keyword:</em> = only in keywords </p> </li> <li> <p> <em>additional:</em> = in &ldquo;additional&rdquo; fields (complementary fields and attributes) </p> </li> <li> <p> all attribute names followed by&nbsp;: defined by the search engine (e.g. <em>sct:authors:</em> but it depends on the engine used) </p> </li> </ul><p>Examples:</p><ul> <li> <p> <kbd>title:governance</kbd>: &ldquo;governance&rdquo; only in the title </p> </li> <li> <p> <kbd>sct:authors:"Victor Hugo"</kbd>: search for the author Victor Hugo (if the attribute <em>sct:authors</em> is properly defined by the engine) </p> </li> <li> <p> <kbd>title:pol* &amp;&amp;~!sct:authors:Smith</kbd>: reference with a word beginning with &ldquo;pol&rdquo; in the title and whose author is not Smith </p> </li> </ul><p> See <a href="http://www.scrutari.net/dokuwiki/serveurscrutari:json:qsyntax" hreflang="fr" target="_blank" rel="external">Search syntax</a> on the Scrutari website (in french) </p> ',
'_ help_periode.html':'<p>This field is used to restrict references to those that correspond to a given period. It is possible to specify:</p><ul> <li> <p> a particular year: <kbd>2014</kbd> </p> </li> <li> <p> a period covering several years by using the slash mark <kbd>/</kbd> as a delimiter: <kbd>2000/2011</kbd> </p> </li> <li> <p> a particular month: <kbd>2014-01</kbd> </p> </li> <li> <p> a period beginning and ending with a particular month: <kbd>2013/2014-04</kbd> </p> </li> <li> <p> several different periods, by separating them with two vertical bars <kbd>||</kbd> (&ldquo;OR&rdquo; operator): <kbd>2001/2002||2005||2012-11</kbd> </p> </li> </ul><p>It is worth noting that, frequently, only the year of a given reference is known. This means that in certain configurations, specifying the month will not produce any results.</p> ',
'_ help_ponderation.html':'<p>Configuration of ranking priority will affect the order results are displayed in:</p><ul> <li> <p> <strong>ranking by relevance:</strong> priority is given to references containing the search terms in the main fields (title, subtitle) rather than secondary fields, with a premium when it is also present in the keywords. </p> <p>The date does, however, play a role in deciding on similar ratings by relevance. In addition, when engines search several databases, ranking may be slightly altered to avoid overly long series of references from the same database;</p> </li> <li> <p> <strong>ranking by date:</strong> as explained by the name, this is when the most recent references are positioned first, with relevance as the deciding factor when dates are very similar; references without dates are at the end. </p> </li> </ul> '
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,86 @@
var SCRUTARI_L10N = {
lang:'it',
'_ advice_complexity':'Verificate se è possibile semplificare la ricerca',
'_ and':'e',
'_ button_check_all':'selezionare tutto',
'_ button_close':'chiudere',
'_ button_filter_off':'disattivare il filtro',
'_ button_filter_on':'attivare il filtro',
'_ button_parameters':'filtri e opzioni',
'_ button_remove':'cancellare',
'_ button_resubmit':'Potenziare la ricerca',
'_ button_submit':'ricerca',
'_ button_uncheck_all':'deseleziona tutto',
'_ colon':':',
'_ error.empty.parametervalue':'errore la ricerca è costituta da caratteri non significativi',
'_ error.empty.searchtoken':'termine di ricerca vuoto',
'_ error.unknown.attribute':'attributo sconosciuto',
'_ error.unknown.fichesearchresult':'identificativo di ricerca sconosciuto',
'_ error.unknown.operandtype':'tipo di operando sconosciuto',
'_ error.unknown.scope':'campo sconosciuto',
'_ error.wrong.missingword':'parola mancante',
'_ error.wrong.notletterordigitcharacter':'carattere non corretto',
'_ error.wrong.operand_add':'operando mal costituito',
'_ error.wrong.operand_date':'data scorretta',
'_ error.wrong.operationsyntax':'errore di sintassi nella ricerca',
'_ error.wrong.unclosedquote':'virgolette non chiuse',
'_ error.wrong.unexpectedspace':'spazio inatteso',
'_ fiche_motscles_many':'parole chiave:',
'_ fiche_motscles_one':'parola chiave:',
'_ filter_off':'[disattivo]',
'_ filter_on':'[attivo]',
'_ label_base_many':'Databases',
'_ label_base_one':'Database',
'_ label_category_many':'categorie',
'_ label_category_one':'categoria',
'_ label_corpus_many':'Corpus',
'_ label_corpus_one':'Corpus',
'_ label_lang_many':'Lingue',
'_ label_lang_one':'Lingua',
'_ link_atom':'flusso ATOM',
'_ link_csv':'Tabella di formato CSV',
'_ link_ods':'cartella formato ODS',
'_ link_permalink':'Link alla ricerca in corso',
'_ link_poweredby':'Ricerca realizzata con Scrutari',
'_ loading_pagination':'caricameto in corso',
'_ loading_search':'ricerca in corso',
'_ mode_help':'aiuto per le relazioni tra i termini di ricerca',
'_ mode_intersection':'e',
'_ mode_operation':'continuare',
'_ mode_title':'realzione tra i termini',
'_ mode_union':'o',
'_ or':'o',
'_ periode_help':'aiuto per limitare la ricerca a un periodo',
'_ periode_title':'limitato a un periodo',
'_ ponderation_date':'data',
'_ ponderation_help':'aiuto per la priorità di classificazione',
'_ ponderation_pertinence':'pertinenza',
'_ ponderation_title':'priorità di classificazione',
'_ result_none':'nessun risultato per la ricerca richiesta',
'_ stats_filter_short':'filtro',
'_ stats_filter_title':'numero di riferimenti sui quali si farà la ricreca grazie ai filtri attivi',
'_ stats_global_short':'totale',
'_ stats_global_title':'numero totale di rinvii nel motore di ricerca',
'_ stats_result_short':'risultato',
'_ stats_result_title':'numero di risultati corrispondenti ai criteri di ricerca',
'_ title_download':'recupero dellintegralità dei risultati',
'_ title_feed':'Abbonati alla ricerca\u00A0:',
'_ title_filter_base':'filtri sulle basi',
'_ title_filter_category':'filtri sulle categorie',
'_ title_filter_corpus':'filtri sul corpo del testo',
'_ title_filter_lang':'filtri sulle lingue',
'_ title_history':'cronologia della ricerca',
'_ title_main':'ricerca scrutari',
'_ title_options':'opzioni di ricerca',
'_ title_share':'URL di ricerca :',
'_ title_subsearch':'ricerca sui risultati della ricerca in corso\u00A0:',
'_ wildchar_end':'«\u00A0*\u00A0» si aggiunge automaticamente alla fine delle parole',
'_ button_subsearch':'Filtrare',
'_ result_fitlerwarning':'Avviso: un filtro è attualmente attivo',
'_ result_notfound':'Termini non trovati',
'_ result_neighbourlist':'Termini correlati',
'_ result_noneighbour':'Non sono stati trovati termini simili',
'_ help_mode.html':'<p> <strong>Ricerca semplice (Opzioni </strong><em><strong>e</strong></em><strong>&nbsp;/ </strong><em><strong>o</strong></em><strong>)&nbsp;:</strong>gli spazi servono a delimitare le parole della ricerca&nbsp;; se si selziona l&rsquo;opzione E il rinvio deve contenere tutte le parole della ricerca&nbsp;; se si seleziona l&rsquo;opzione O il rinvio deve possedere almeno una parola della ricerca. </p><p> L&rsquo;asterisco <kbd>*</kbd>&nbsp;indica una troncatura&nbsp;: </p><ul> <li> <p> <kbd>gov*</kbd>&nbsp;: tutte le parole che cominciano con &laquo;&nbsp;gov&nbsp;&raquo; </p> </li> <li> <p> <kbd>*logia</kbd>&nbsp;: tutte le parole che finiscono con &laquo;&nbsp;logia&nbsp;&raquo; </p> </li> <li> <p> <kbd>*eco*</kbd>&nbsp;: tutte le parole che contengono &laquo;&nbsp;eco&nbsp;&raquo; </p> </li> </ul><p> Se si seleziona l&rsquo;opzione &laquo;&nbsp;*&nbsp;&raquo; <em>aggiunto automaticamente alla fine della parola</em>, tutte le parole saranno da considerarsi con una troncatura a destra (fanno eccezione le parole tra virgolette). </p><p>Per indicare una sequenza di termini si usano le virgolette alte. All&rsquo;interno delle virgolette si possono indicare le troncature &nbsp;:</p><ul> <li> <p> <kbd>"agricoltura biologica"</kbd>&nbsp;: il termine agricoltura viene ignorato se non &egrave; seguito dall&rsquo;aggettivo biologica </p> </li> <li> <p> <kbd>"part"</kbd>: cerca solo la parola &laquo;&nbsp;part&nbsp;&raquo; anche se l&rsquo;opzione automatica asterisco a destra &egrave; attiva </p> </li> <li> <p> <kbd>"pol*pub*"</kbd>: cerca le sequenze che contengono una parola che comincia con &laquo;&nbsp;pol&nbsp;&raquo; seguita da una parola che comincia con &laquo;&nbsp;pub&nbsp;&raquo; </p> </li> </ul><p>Per finire valgono le seguenti regole&nbsp;:</p><ul> <li> <p>la ricerca non considera accenti e maiuscole</p> </li> <li> <p>i soli caratteri presi in considerazione sono le lettere e le cifre</p> </li> <li> <p>il motore non propone correzioni in caso di errori di ortografia</p> </li> <li> <p>il motore non considera le parole di una o due lettere, n&eacute; le parole di uso corrente ma senza significato proprio ( per esempio&nbsp;: gli, con, per )</p> </li> </ul><p> <br> <strong>Ricerca avanzata ( Opzione &laquo;&nbsp;Avanzata&nbsp;&raquo;)&nbsp;:</strong> la ricerca avanzata usa gli stessi principi della ricerca delle parole ( asterisco * per le troncature, virgolette per le sequenze) ma lo spazio non ha pi&ugrave; la funzione di separatore. Al suo posto si usano tre operatori&nbsp;: </p><ul> <li> <p> <kbd>&amp;&amp;</kbd>&nbsp;: E </p> </li> <li> <p> <kbd>||</kbd>&nbsp;: O </p> </li> <li> <p> <kbd>!</kbd>&nbsp;: No </p> </li> </ul><p>Per formare gruppi logici si fa ricorso alle parentesi.</p><p>Esempi&nbsp;:</p><ul> <li> <p> <kbd>agricoltura &amp;&amp; !biologica</kbd>&nbsp;: cerca i risultati che contengono la parola agricoltura non seguita dalla parola biologica </p> </li> <li> <p> <kbd>agricoltura &amp;&amp; !(biologico || paese)</kbd>&nbsp;: cerca i risultati che contengono la parola agricoltura et che non contengano la parola biologica o paese. </p> </li> </ul><p>Gli errori di sintassi (compreso l&rsquo;uso di caratteri non autorizzati che non siano cifre o lettere, e lo spazio per separare parole non virgolettate) provocano un messaggio di errore.</p><p>La ricerca di una parola pu&ograve; essere circoscritta a un campo preciso grazie a un prefisso. I prefissi sono&nbsp;:</p><ul> <li> <p> <em>titolo:</em> = solo tra i titoli </p> </li> <li> <p> <em>sottotitolo:</em> = solo tra i sottotitoli </p> </li> <li> <p> <em>parolachiave:</em> = solo tra le parole chiave </p> </li> <li> <p> <em>supplemento:</em> = tra i campi supplementari (campi complementari e attributi) </p> </li> </ul><p> qualsiasi nome di attributo seguito da&nbsp;<em>:</em> definito dal motore ( per sempio&nbsp;: <em>sct:authors</em>. Questo dipende dal motore che si usa.) </p><p>Esempi&nbsp;:</p><ul> <li> <p> <kbd>titolo:governance</kbd>&nbsp;: &laquo; governance &raquo;nel titolo </p> </li> <li> <p> <kbd>sct:authors:"Victor Hugo"</kbd>&nbsp;: Ricerca su l&rsquo;autore Victor Hugo (se l&rsquo;attributo <em>sct:authors</em> &egrave; definito correttamente dal motore) </p> </li> <li> <p> <kbd>titolo:pol* &amp;&amp; !sct:authors:Dupont</kbd>&nbsp;: risultato con, nel titolo, una parola che comincia con &laquo;&nbsp;pol&nbsp;&raquo; e il cui autore non sia Dupont. </p> </li> </ul><p> Guardare <a href="http://www.scrutari.net/dokuwiki/serveurscrutari:json:qsyntax" hreflang="fr" target="_blank" rel="external">Syntaxe d&rsquo;une recherche</a> sul sito di Scrutari </p> ',
'_ help_periode.html':'<p>Questo campo permette di conservare i risultati corrispondenti a un periodo preciso. Si possono dare come indicazioni&nbsp;:</p><ul> <li> <p> un anno&nbsp;: <kbd>2014</kbd> </p> </li> <li> <p> un periodo di svariati anni servendosi della barra obliqua&nbsp; / per separare le date di inizio e fine&nbsp;: <kbd>2000/2011</kbd> </p> </li> <li> <p> un mese&nbsp;: <kbd>2014-01</kbd> </p> </li> <li> <p> un periodo che cominci o finisca ad un mese a scelta&nbsp;: <kbd>2013/2014-04</kbd> </p> </li> <li> <p> periodi diversi, separati da due due barre verticali <kbd>||</kbd> (operatore &laquo; O &raquo;)&nbsp;: <kbd>2001/2002||2005||2012-11</kbd> </p> </li> </ul><p>Si noti che, spesso, l&rsquo;anno &egrave; la sola indicazione temporale di un risultato ; in alcune configurazioni, l&rsquo;indicazione del mese non ottiene nessun risultato.</p> ',
'_ help_ponderation.html':'<p>La configuarzione della priorit&agrave; nella classifica influisce sull&rsquo;ordine di apparizione dei risultati&nbsp;</p><ul> <li> <p> <strong>Classifica in base alla pertinenza&nbsp;:</strong> si da priorit&agrave; ai risultati che contengono i termini ricercati nei campi principali (titolo, sottotitolo) piuttosto che in quelli secondari. Tra questi hanno priorit&agrave; i risultati che contengono i termini ricercati tra le parole chiave. </p> <p>La data aiuta a classificare le note che hanno eguale pertinenza. Inoltre, nel caso di motori di ricerca con pi&ugrave; basi, la classifica pu&ograve; essere leggermente alterata per evitare una lunga lista di rinvii proveniente da una sola base.</p> </li> <li> <p> <strong>Classifica per ordine cronologico&nbsp;:</strong> i risultati pi&ugrave; recenti occupano i primi posti, quando le date sono troppo ravvicinate si fa ricorso al criterio della pertinenza ; i risultati non datati sono collocati alla fine </p> </li> </ul> '
};

View File

@ -0,0 +1,83 @@
var SCRUTARI_L10N = {
lang:'pt',
'_ advice_complexity':'Descubra se eles não podem simplificar a busca',
'_ and':'E',
'_ button_check_all':'Marcar tudo',
'_ button_close':'Fechar',
'_ button_filter_off':'Desativar o filtro',
'_ button_filter_on':'Ativar o filtro',
'_ button_parameters':'Filtros e opções',
'_ button_remove':'Eliminar',
'_ button_resubmit':'Relançar a busca',
'_ button_submit':'Busca em',
'_ button_uncheck_all':'Desmarcar tudo',
'_ colon':':',
'_ error.empty.parametervalue':'Erro : a busca consiste apenas em caracteres não significativos !',
'_ error.empty.searchtoken':'Termo de busca vazio',
'_ error.unknown.attribute':'Atributo desconhecido',
'_ error.unknown.fichesearchresult':'Número de busca desconhecido',
'_ error.unknown.operandtype':'Tipo de operando desconhecido',
'_ error.unknown.scope':'Campo desconhecido',
'_ error.wrong.missingword':'Palavra que falta',
'_ error.wrong.notletterordigitcharacter':'Caráter incorreto',
'_ error.wrong.operand_add':'Operando mal treinado',
'_ error.wrong.operand_date':'Data incorretamente formada',
'_ error.wrong.operationsyntax':'Erro de sintaxe na busca avançada',
'_ error.wrong.unclosedquote':'Vírgulas invertidas incorretamente fechadas',
'_ error.wrong.unexpectedspace':'Espaço inesperado',
'_ fiche_motscles_many':'Palavras-chave:',
'_ fiche_motscles_one':'Palavra-chave:',
'_ filter_off':'[desabilitado]',
'_ filter_on':'[ativado]',
'_ label_base_many':'Bases',
'_ label_base_one':'Base',
'_ label_category_many':'Categorias',
'_ label_category_one':'Categoria',
'_ label_corpus_many':'Corpus',
'_ label_corpus_one':'Corpus',
'_ label_lang_many':'Idiomas',
'_ label_lang_one':'Idioma',
'_ link_atom':'Fluxo de sindicação ATOM',
'_ link_csv':'Tabela do formato CSV',
'_ link_ods':'Modelo no formato ODS',
'_ link_permalink':'Link para a busca atual',
'_ link_poweredby':'Busca com Scrutari',
'_ loading_pagination':'Em carregamento',
'_ loading_search':'Busca em progresso...',
'_ mode_help':'Ajuda para as relações entre termos de busca',
'_ mode_intersection':'E',
'_ mode_operation':'Avançada',
'_ mode_title':'Relação entre os termos',
'_ mode_union':'Ou',
'_ or':'Ou',
'_ periode_help':'Ajuda para a limitação a um período',
'_ periode_title':'Limitado a um período',
'_ ponderation_date':'Data',
'_ ponderation_help':'Ajuda de classificação de prioridades',
'_ ponderation_pertinence':'Relevância',
'_ ponderation_title':'Classificação de prioridades',
'_ result_none':'Nenhum resultado para a busca solicitada',
'_ stats_filter_short':'Filtro\u00A0:',
'_ stats_filter_title':'Número de referências a serem pesquisadas pelos filtros ativos',
'_ stats_global_short':'Total\u00A0:',
'_ stats_global_title':'Número total de referências no mecanismo de busca',
'_ stats_result_short':'Resultado\u00A0:',
'_ stats_result_title':'Número de referências que atendem aos critérios de busca',
'_ title_download':'Recuperação da integralidade das referências',
'_ title_feed':'Assine a busca\u00A0:',
'_ title_filter_base':'Aplicar filtro em bases de dados',
'_ title_filter_category':'Aplicar filtro nas categorias',
'_ title_filter_corpus':'Aplicar filtro nos corpus',
'_ title_filter_lang':'Aplicar filtro nas idiomas',
'_ title_history':'Histórico da busca',
'_ title_main':'Busca Scrutari',
'_ title_options':'Opções de busca',
'_ title_share':'Compartilhar a busca:',
'_ title_subsearch':'Pesquisa sobre os resultados da busca atual:',
'_ wildchar_end':'«\u202F*\u202F» acrescentado automaticamente no final das palavras',
'_ button_subsearch':'Filtrar',
'_ result_fitlerwarning':'Lembrar: atualmente há um filtro ativo',
'_ result_notfound':'Termos não encontrados',
'_ result_neighbourlist':'Termos relacionados',
'_ result_noneighbour':'Não foram encontrados termos semelhantes'
};

View File

@ -0,0 +1,407 @@
/**
* pour Libre à vous
*/
kbd {
background: #fff;
border-radius: 0;
border: 1px solid #BDDDFE;
box-shadow: inherit;
display: inline-block;
font-size: 14px;
}
input[type="text"], input[type="search"] {
background-color: #edf1f5;
color: #005184;
}
@media screen and (max-width: 500px) {
ul.spip > li {
padding-left: 0;
}
ul.spip > li::before {
left: -1em;
}
}
/*****************************************************
* .scrutari- : Surcharge de classes Scrutari par défaut
******************************************************/
.scrutari-Mark {
background-color: #ffe9e0;
}
/*****************************************************
* .scrutari-area : Surcharge de classes Scrutari par défaut
******************************************************/
.scrutari-area-Poweredby {
font-size: 0.8em;
text-align: center;
margin-top: 20px;
padding-bottom: 10px;
}
/*****************************************************
* .scrutari-fiche : Surcharge de classes Scrutari par défaut
******************************************************/
.scrutari-fiche-Block {
border-bottom: solid 1px #eaeef3;
margin-top: 25px;
}
.scrutari-fiche-Link {
border: 0;
}
.scrutari-fiche-Titre {
font-size: 1.15rem;
}
.scrutari-fiche-Titre .num_emission {
font-size: 1.3rem;
margin-right: 0.5rem;
padding: 0.2rem;
width: inherit;
}
@media screen and (max-width: 500px) {
.scrutari-fiche-Soustitre {
margin-left: 0;
}
}
/*****************************************************
* .scrutari-history : Surcharge de classes Scrutari par défaut
******************************************************/
.scrutari-history-Block, .scrutari-history-Block.scrutari-history-Active {
background-color: #e6ebf0;
}
.scrutari-history-Block {
display: inline-block;
padding: 2px;
margin-top: 6px;
margin-left: 6px;
}
.scrutari-history-Load, .scrutari-history-Remove {
background-color: transparent;
font-family: 'Lato',sans-serif;
font-weight: 400;
line-height: 1.6;
color: #005184;
text-rendering: geometricPrecision;
}
.scrutari-history-Subsearch {
margin-left: 10px;
}
/*****************************************************
* .scrutari-overlay : Surcharge de classes Scrutari par défaut
******************************************************/
.scrutari-overlay-Component_header {
border: none;
background-color: rgb(0, 81, 132);
color: #fff;
padding: 1rem 2rem;
font-size: 18px;
}
.scrutari-overlay-Component_content {
padding: 2rem 3rem;
}
.scrutari-overlay-Component_content p {
font-size: 16px;
}
.scrutari-overlay-Component_dialog {
max-width: 800px;
}
.scrutari-overlay-button-Close {
position: absolute;
display: block;
top: -12.5px;
right: -12.5px;
display: block;
width: 30px;
height: 30px;
margin-right: 1.5rem;
margin-top: 1.5rem;
border-radius: 00;
font-size: inherit;
color:#BDDDFE;
background-color: rgb(0, 81, 132);
border:1px solid #BDDDFE;
}
.scrutari-overlay-button-Close:hover {
background-color: #E45817;
border:1px solid #FFF;
color:#FFF;
}
@media screen and (max-width: 500px) {
.scrutari-overlay-Component_content {
padding:1rem;
}
.scrutari-overlay-Component_header {
padding: 1rem;
}
}
/*****************************************************
* .scrutari-pagination : Surcharge de classes Scrutari par défaut
******************************************************/
.scrutari-pagination-Current {
background-color: #648bab;
color: #fff;
}
.scrutari-pagination-TabList {
text-align: center;
font-size: 1.1em;
}
.scrutari-pagination-Tab {
padding-left: 4px;
padding-right: 4px;
border: none;
background-color: transparent;
cursor: pointer;
color: #005184;
}
.scrutari-pagination-Tab:disabled {
cursor: auto;
background-color: #648bab;
color: #fff;
}
/*****************************************************
* .lav- : Classes spécifiques à la version
* pour Libre à vous
******************************************************/
.lav-Filtre {
padding-bottom: 5px;
border-bottom: solid 1px #eaeef3;
}
.lav-FiltreLabel {
display: inline-block;
margin-left: 5px;
}
.lav-Operateur {
color: #acd0f9;
}
.lav-Sequence {
font-size: 2.5em;
margin-bottom: 15px;
}
.lav-TitreResultats {
margin-bottom: 25px;
margin-top: 50px;
}
.lav-Total {
font-size: 0.85em;
}
/*****************************************************
* .lav-details- : Options de recherche
******************************************************/
.lav-details-Container {
border-bottom: solid 1px #eaeef3;
margin-top: 10px;
padding-bottom: 10px;
margin-bottom: 35px;
}
.lav-details-Body {
padding-left: 15px;
margin-top: 10px;
display: grid;
grid-template-columns: max-content;
}
.lav-details-Body p {
border-bottom: solid 1px #eaeef3;
margin: 0;
padding-top: 4px;
padding-bottom: 4px;
}
.lav-details-Body button {
background: transparent;
padding: 0;
margin: 0;
border: none;
}
.lav-details-Body .fas {
color: #acd0f9;
}
.lav-details-Body .fas:hover {
color: #00c4f5;
}
.lav-details-Body p:last-child {
border-bottom: none;
}
.lav-details-Input {
border-color: #bbbcbc;
border-style: solid;
border-width: 1px;
}
.lav-details-Summary {
cursor: pointer;
font-family: 'Metropolis',sans-serif;
font-weight: 700;
}
@media screen and (max-width: 500px) {
.lav-details-Body {
display: block;
}
.lav-details-Input {
overflow: hidden;
}
}
/*****************************************************
* .lav-history- : Historique
******************************************************/
.lav-history-Container {
display: flex;
align-items: baseline;
padding-top: 5px;
padding-bottom: 5px;
border-bottom: solid 1px #eaeef3;
margin-bottom: 5px;
}
.lav-history-List {
flex-grow: 1;
}
.lav-history-Label {
flex-shrink: 0;
}
.lav-history-Clear {
flex-shrink: 0;
}
.lav-history-Clear button {
background-color: transparent;
}
.lav-history-Clear .fas {
color: #acd0f9;
}
.lav-history-Clear .fas:hover {
color: #00c4f5;
}
@media screen and (max-width: 500px) {
.lav-history-Container {
display: block;
}
.lav-history-Clear {
display: block;
text-align: right;
}
}
/*****************************************************
* .lav-input- : Traitement
******************************************************/
.lav-input-Area {
display: grid;
grid-template-columns: 1fr max-content;
column-gap: 30px;
}
.lav-input-Block {
display: flex;
align-items: center;
padding: 5px;
border-color: #bbbcbc;
border-style: solid;
border-width: 1px;
background-color: #edf1f5;
}
.lav-input-Field {
border: none;
flex-grow: 1;
margin-left: 5px
}
.lav-input-Submit {
background: #f7651a;
color: #FFF !important;
font-weight: 700;
}
@media screen and (max-width: 640px) {
.lav-input-Area {
column-gap: 15px;
}
}
@media screen and (max-width: 500px) {
.lav-input-Area {
display: block;
}
.lav-input-Submit {
margin-top: 5px;
}
.lav-input-Field {
overflow: hidden;
}
}

View File

@ -0,0 +1,180 @@
/*****************************************************
* .scrutari
******************************************************/
.scrutari-Disabled {
color: grey;
}
.scrutari-Excluded {
text-decoration: line-through;
color: grey;
}
.scrutari-Hidden {
display: none !important;
}
/*****************************************************
* .scrutari-fiche
******************************************************/
.scrutari-fiche-AttributeValue::before {
content: '… ';
}
.scrutari-fiche-AttributeValue::after {
content: ' …';
}
.scrutari-fiche-Body {
margin-left: 21px;
}
.scrutari-fiche-Body.scrutari-fiche-ThumbnailBody {
margin-left: 110px;
}
.scrutari-fiche-Body::after {
content: '';
display: block;
clear: left;
}
.scrutari-fiche-Icon {
float: left;
margin-top: 0;
}
.scrutari-fiche-Thumbnail {
float: left;
margin-top: 0;
position: relative;
}
.scrutari-fiche-ThumbnailImg {
max-width: 100px;
}
.scrutari-fiche-ThumbnailIcon {
display: block;
position: absolute;
top: 0;
left: 0;
border-right-color: #fff;
border-right-style: solid;
border-right-width: 3px;
border-bottom-color: #fff;
border-bottom-style: solid;
border-bottom-width: 2px;
background-color: #fff;
border-bottom-right-radius: 2px;
z-index: 100;
}
/*****************************************************
* .scrutari-icon
******************************************************/
.scrutari-icon-Loader {
background-image: url("images/ajax-loader.gif");
position: relative;
display: inline-block;
width: 16px;
height: 16px;
}
.scrutari-icon-Logo {
background-image: url("images/logo-scrutari.png");
position: relative;
bottom: -10px;
display: inline-block;
width: 32px;
height: 32px;
}
/*****************************************************
* .scrutari-panel
******************************************************/
.scrutari-panel-Active {
color: green;
}
.scrutari-panel-Columns.scrutari-Disabled {
opacity: 0.5;
}
.scrutari-panel-Icon {
vertical-align: baseline;
}
/*******************************************************************************
* .scrutari-overlay- v 0.4.2
*******************************************************************************/
.scrutari-overlay-Component_blocker {
position: fixed;
top: 0; right: 0; bottom: 0; left: 0;
width: 100%; height: 100%;
overflow: hidden;
z-index: 10000;
padding: 20px;
box-sizing: border-box;
background-color: rgba(0,0,0, 0.75);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.scrutari-overlay-Component_content {
min-width: 20vw;
max-width: 90vw;
max-height: 70vh;
overflow: auto;
}
.scrutari-overlay-Component_dialog {
position: relative;
box-sizing: border-box;
background-color: #fff;
box-shadow: 0 0 10px #000;
}
.scrutari-overlay-Component_header {
min-height: 10px;
}
.scrutari-overlay-Waiting {
cursor: wait;
}
/*****************************************************
* .scrutari-stats
******************************************************/
.scrutari-stats-Abbr {
text-decoration: none;
}
.scrutari-stats-Filter {
color: green;
}
.scrutari-stats-None {
color: red;
}
.scrutari-stats-Cell {
vertical-align: baseline;
}
.scrutari-stats-Number {
text-align: right;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
[(#REM) Vincent : Squelette pour le client ScrutariJs
il se base sur la structure ZCore pour être pleinement intégré]
<INCLURE{fond=structure,env,type-page=scrutarijs,composition=#COMPOSITION} />

View File

@ -301,7 +301,9 @@ html .formulaire_spip input[type="text"] {
}
.article__interactivite {
> div {
@include flex;
@include media($bp-small-up){
@include flex;
}
> a {
margin-left:1rem;
}
@ -531,6 +533,9 @@ ul.spip {
.composition_blog & {
margin:0;
}
.page_chapitre & {
margin-top: 0;
}
}
.num_emission {
display: inline-block;
@ -549,9 +554,14 @@ ul.spip {
}
.article__date {
display:none; /* provisoire, par simplicite */
display: none; /* provisoire, par simplicite */
}
.composition_landing {
.page_wrapper {
border: 0;
}
}
.composition_emissions, .composition_emission, .emissions, .derniere_emission, .prochaine_emission {
.article__date {
display: inline;
@ -1154,7 +1164,7 @@ a:hover .fab, a:hover .fas {
text-align: center;
}
iframe {
min-height: 300px;
min-height: 860px;
}
}
@include media($bp-medium) {
@ -1180,7 +1190,7 @@ a:hover .fab, a:hover .fas {
line-height: 1.1;
}
iframe {
min-height: 300px;
min-height: 860px;
}
audio {
@include media($bp-medium) {
@ -1221,7 +1231,7 @@ a:hover .fab, a:hover .fas {
.pagination {
.pagination-items a, .pagination-items span, .lien_pagination a /* spip 3 et 4 */ {
color: white;
.composition_blog & {
.composition_blog &, .page_content aside & {
color:$couleurPrincipale;
}
}
@ -1441,6 +1451,33 @@ a.spip_out {
margin-right: 1em;
}
/*
* Vincent 02/10/2023
* Lien vers la recherche avancée
*/
#recherche_avancee_bloc {
background: #FFF;
display: block;
padding-right: 4px;
border: 1px solid #B3B3B3;
border-top-width: 0;
}
#lien_recherche_avancee {
color: $couleurPrincipale !important;
background: #FFF!important;
font-weight: 400;
}
#lien_recherche_avancee:hover {
color: $couleurPrincipaleOn !important;
}
/*Nécessaire pour être au dessus du bouton S'abonner aux actus */
.page_header > .page_container .nav > ul .loupe .formulaire_recherche.vu {
z-index: 5;
}
/*
* fin