une sélection d'émission en page accueil

pour l'instant on utilise la page sommaire_selection avant validation
This commit is contained in:
chankalan 2022-10-21 18:22:33 +02:00
parent 574fcd5ce9
commit ba7886271f
5 changed files with 236 additions and 13 deletions

View File

@ -1,21 +1,38 @@
<div class="formulaire_spip formulaire_configurer formulaire_#FORM">
<h3 class="titrem"><:libreavous:titre_page_configurer_libreavous:/></h3>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
<form method="post" action="#ENV{action}">
<div>
#ACTION_FORMULAIRE{#ENV{action}}
<ul class="editer-groupe">
<fieldset>
<h3 class="titrem"><:libreavous:page_accueil:/></h3>
<div class="editer-groupe">
[(#SAISIE{selecteur_article, selectionaccueil,
label=<:libreavous:selectionaccueil:>,
multiple=oui,
explication=<:libreavous:selectionaccueil_explications:>})]
[(#SAISIE{input,selectionaccueiltitre,
label=<:libreavous:selectionaccueiltitre_label:>,
explication=<:libreavous:selectionaccueiltitre_explications:>,
placeholder='Sélection'})]
</div>
</fieldset>
<fieldset>
<h3 class="titrem"><:libreavous:les_emissions:/></h3>
<div class="editer-groupe">
[(#SAISIE{textarea,licence,
label=<:libreavous:licence_label:>,
explication=<:libreavous:licence_explications:>,
inserer_barre=edition})]
</div>
</fieldset>
</ul>
</div>
<p class="boutons"><span class="image_loading">&nbsp;</span><input type="submit" class="submit" value="<:bouton_enregistrer:/>" /></p>
</div>
</form>

View File

@ -39,6 +39,19 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'musiques' => 'Musiques',
'licence' => 'Licence',
// page configuration
'titre_page_configurer' => 'Configuration particulière pour <strong>Libre à vous !</strong>',
'options_libreavous' => 'Options <strong>Libre à vous !</strong>',
'page_accueil' => 'Page Accueil',
'les_emissions' => 'Les émissions',
'licence_label' => 'Licence',
'licence_explications' => 'Le texte est présent sur chaque page démission, tout en bas.',
'selectionaccueil' => 'Sélection démissions en page accueil',
'selectionaccueil_explications' => 'Sous le bloc de la prochaine émission, la sélection met en avant quelques émissions pour orienter les premières visites...',
'selection_d_emissions' => 'Sélection',
'selectionaccueiltitre_label' => 'Le titre de cette sélection.',
'selectionaccueiltitre_explications' => 'Par défaut <strong>Sélection</strong>',
'diffusee_le' => 'Diffusée le',
'diffusee_en_direct_le' => 'Diffusée en direct ',
'toutes_les_emissions' => 'Toutes les émissions',

View File

@ -30,6 +30,6 @@
<pipeline nom="objet_compte_enfants" inclure="libreavous_pipelines.php" />
<pipeline nom="affiche_milieu" inclure="libreavous_pipelines.php" />
<!-- <menu nom="configurer_librealire" titre="librealire:options_lal" parent="menu_squelette" icone="images/baz_april-16.png" /> -->
<menu nom="configurer_libreavous" titre="libreavous:options_libreavous" parent="menu_squelette" icone="images/baz_april-16.png" />
</paquet>

View File

@ -0,0 +1,127 @@
#CACHE{0}
<BOUCLE_annonce(ARTICLES){page=annonce}>
<article class="annonce texte_accueil">
<header class="cartouche">
<h1><span class="#EDIT{titre} article__titre">[(#TITRE)]</span>[
<small class="#EDIT{soustitre} soustitre">(#SOUSTITRE)</small>
]</h1>
</header>
[(#PS|oui)<div class="flex flex2">]
<div class="main">
[<div class="chapo #EDIT{chapo}">(#CHAPO|image_reduire{800,*})</div>]
[<div class="texte #EDIT{texte}">(#TEXTE|image_reduire{800,*})</div>]
[</div><div class="aside">
<div class="ps #EDIT{ps}">(#PS|image_reduire{400,*})</div>
</div>]
</div>
</article>
</BOUCLE_annonce>
[(#REM)
15h15 = horaire de publication = date de publication de l'article
15h30 = horaire de début = pour l'instant dans le code
17h00 = horaire de fin = pour l'instant dans le code
]
<BOUCLE_emissions(RUBRIQUES){composition=emissions}>[(#REM)
on détermine la dernière émission même si la date est dans le futur, forcée par statut=publie
]<BOUCLE_quand(ARTICLES){id_rubrique}{!par date}{statut=publie}{0,1}>[(#REM)
on connait la date de publication, donc on determine début_emission et fin_emission
ensuite inclusion en statique pour la gestion du cache indépendante - à vérifier...
]
[(#SET{debut_emission,[(#DATE|annee)-][(#DATE|mois)-][(#DATE|jour|libreavous_aveczerod) ]15:30:00})]
[(#SET{fin_emission,[(#DATE|annee)-][(#DATE|mois)-][(#DATE|jour|libreavous_aveczerod) ]17:00:00})]
[(#ENV{date}|<={#GET{fin_emission}}|oui) [(#REM) inclure l'émission prochaine et en cours ]
#INCLURE{fond=inclure/emission_encours,env,id_article,debut_emission=#GET{debut_emission},fin_emission=#GET{fin_emission}}#SET{prochaine,#ID_ARTICLE}
][(#ENV{date}|>={#GET{fin_emission}}|oui) [(#REM) inclure la dernière émission ]
#INCLURE{fond=inclure/derniere_emission,debut_emission=#GET{debut_emission},fin_emission=#GET{fin_emission},emission_heroine=oui}
]
</BOUCLE_quand>
</BOUCLE_emissions>
<B_selection>
<div class="liste articles emissions emissions_selectionaccueil">
<h2>[(#CONFIG{libreavous/selectionaccueiltitre}|sinon{<:libreavous:selection_d_emissions:>})]</h2>
<div class="owl-theme owl-carousel [ (#TOTAL_BOUCLE|>={3}|oui)owlselectionaccueil]">
<BOUCLE_selection(ARTICLES){id_article IN #CONFIG{libreavous/selectionaccueil}|picker_selected{article}}>
<INCLURE{fond=inclure/resume/emission,id_article} />
</BOUCLE_selection>
</div>
[(#TOTAL_BOUCLE|>={3}|oui)
<script>
jQuery(function($){
$(".owlselectionaccueil").owlCarousel({
loop:false,
margin:30,
items: 3,
slideBy: 3,
dots: false,
// navContainerClass:'navowl',
nav: true,
autoplay: true,
autoplayTimeout: 5000,
autoplayHoverPause: true,
lazyLoad: true,
autoHeight: false,
URLhashListener: true,
startPosition: 'URLHash',
responsive : {
// breakpoint from 0 up
0 : {
items: 1,
},
// breakpoint from 480 up
560 : {
items: 2,
},
// breakpoint from 768 up
860 : {
items: 3,
}
}
});
});
</script>
]
</div>
</B_selection>
<B_accueil>
<article class="texte_accueil">
<BOUCLE_accueil(ARTICLES){page=accueil}>
<h2 class="visuallyhidden">#TITRE</h2>
<div class="flex flex2">
<div class="main">
[<div class="#EDIT{chapo} chapo surlignable">(#CHAPO|adaptive_images{#CONST{_CONTENT_WIDTH}})</div>]
[<div class="#EDIT{texte} texte surlignable">(#TEXTE|adaptive_images{#CONST{_CONTENT_WIDTH}})</div>]
</div>
[<aside class="aside">
<div class="#EDIT{ps} ps surlignable">(#PS|adaptive_images{#CONST{_CONTENT_WIDTH}})</div>
</aside>]
</div>
<footer>
[<div class="notes"><h2><:info_notes:></h2>(#NOTES)</div>]
</footer>
</BOUCLE_accueil>
</article>
</B_accueil>
[<div id="descriptif_site_spip" class="#EDIT{meta-descriptif_site} texte_accueil">(#DESCRIPTIF_SITE_SPIP)</div>]
[(#DESCRIPTIF_SITE_SPIP|non)<div class="texte_accueil">#NOM_SITE_SPIP</div>]
<//B_accueil>
[(#GET{prochaine}|oui)
<div class="derniere_emission">
<h2><:libreavous:derniere_emission:></h2>
<INCLURE{fond=inclure/derniere_emission,prochaine=#GET{prochaine}} />
</div>
]
<INCLURE{fond=inclure/liste/emissions-precedentes,ajax,env,nb=6,prochaine=#GET{prochaine}} />
[(#MODELE{bouton,lienobjet=rubrique,lienidobjet=1,class=center taille130,texte=Toutes les émissions})]

View File

@ -264,6 +264,7 @@ html .formulaire_spip input[type="text"] {
.texte_accueil {
.page_content > article&:not(.annonce) {
margin-bottom:0;
margin-top: 4rem;
padding-right:2rem;
}
background-color: white;
@ -1013,6 +1014,71 @@ a:hover .fab, a:hover .fas {
padding: 1rem;
width: auto;
}
&.emissions_selectionaccueil {
position: relative;
.owl-carousel {
article {
/* width: 30%; */
padding: 0 1rem;
.texte_aside, .podcast, .sujets, .btn.blanc {
display: none;
opacity: 0;
}
&:hover {
.sujets, .btn.blanc {
/* display: block; */
/* opacity: 1; */
/*
position: absolute;
top: 100%;
background: white;*/
}
}
.article__infos {
margin: 0 0 1rem -1rem;
position: static;
.btn.blanc {
position: absolute;
bottom: 1rem;
right: 0;
}
}
.texte_content {
position: relative;
/* padding-bottom: 2.5rem; */
}
}
.owl-nav {
font-size: 6rem;
button.owl-prev, button.owl-next {
color: white;
position: absolute;
top: -2rem;
right: -4rem;
line-height: 1;
background: none !important;
@media(max-width:768px) {
right: -2.5rem;
}
span {
display: block;
}
}
button.owl-prev {
left: -4rem;
@media(max-width:768px) {
left: -2.5rem;
}
}
}
}
}
.emission-resume.article-resume h1 small {
display: block;
}
}
.liste.emissions.chroniques {
> ul > li {
@ -1025,7 +1091,7 @@ a:hover .fab, a:hover .fas {
}
.emission_heroine.emission-resume.article-resume {
margin-bottom:4rem;
/* margin-bottom:4rem; */
padding-bottom: 2rem;
.article__infos {
margin: 0 0 0 -4rem;