Chaque groupe a désormais sa propre image. On peut chosir l'image de bannière de la ville parmi les images uploadées dans un groupe.

This commit is contained in:
Pierre 2020-12-30 17:37:32 +01:00
parent 6259d76399
commit edd1a327c5
7 changed files with 109 additions and 26 deletions

View file

@ -0,0 +1,53 @@
<?php
if (!defined('_ECRIRE_INC_VERSION')) return;
// mettre une photo en banniere (credit = une)
function action_choisir_banniere_dist(){
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
$Targs = explode('-', $arg);
$id_document = intval($Targs[0]);
$id_article = intval($Targs[1]);
if (!$id_document OR !$id_article)
return false;
// il faut être auteur pour mettre à la Une
include_spip('inc/autoriser');
if (! autoriser("creer","article")) {
return false;
}
// On récupère tous les id_article de la même ville
$ville = sql_getfetsel('surtitre','spip_articles','id_article='.$id_article);
$where0 = array(
"surtitre='$ville'",
'id_secteur='. lire_config('balint/id_rub_groupes')
);
$groupes = sql_allfetsel('id_article','spip_articles',$where0);
$Tid_groupes = array_column($groupes,'id_article');
foreach($Tid_groupes as $id_groupe){
// récupérer les docs attachés à l'article
$where = array(
'id_objet='.$id_groupe,
'objet="article"',
'extension IN ("jpg","png","gif")',
);
$res = sql_allfetsel('spip_documents_liens.id_document', array('spip_documents_liens','spip_documents'), $where);
$Tid_docs = array_column($res,'id_document');
// virer la bannière actuelle
sql_updateq('spip_documents', array('credits' => ''),'id_document IN ('.join(',',$Tid_docs).')');
}
// mettre en bannière la photo choisie
sql_updateq('spip_documents', array('credits' => 'une'),'id_document = '.$id_document);
// Cache
include_spip('inc/invalideur');
suivre_invalideur("id='id_article/$id_article'");
}

View file

@ -810,14 +810,14 @@ body{
}
.btn_poubelle{
color: red;
:hover{
color: #ee9e9e;
&:hover{
color: #b30000;
}
}
.btn_une{
color: black;
:hover{
color: grey;
&:hover{
color: black;
}
}
.boutons_actions {
@ -827,18 +827,19 @@ body{
justify-content: space-around;
align-items: center;
background-color: $gris-clair;
i.green {
padding: .6rem;
color: rgb(28, 158, 28);
i {
padding:0 0.6rem;
}
a {
margin: 0;
}
.premier-plan{
color: rgb(28, 158, 28);
display: flex;
flex-direction: row;
align-items: center;
padding: 0.2rem;
font-size: 1rem;
}
}
}

View file

@ -12800,15 +12800,15 @@ body {
}
.docs-article .btn_poubelle:hover {
color: #ee9e9e;
color: #b30000;
}
.docs-article .btn_une {
color: black;
color: grey;
}
.docs-article .btn_une:hover {
color: grey;
color: black;
}
.docs-article .boutons_actions {
@ -12824,9 +12824,8 @@ body {
background-color: #f2f2f2;
}
.docs-article .boutons_actions i.green {
padding: .6rem;
color: #1c9e1c;
.docs-article .boutons_actions i {
padding: 0 0.6rem;
}
.docs-article .boutons_actions a {
@ -12834,6 +12833,7 @@ body {
}
.docs-article .boutons_actions .premier-plan {
color: #1c9e1c;
display: -webkit-box;
display: flex;
-webkit-box-orient: horizontal;
@ -12842,6 +12842,7 @@ body {
-webkit-box-align: center;
align-items: center;
padding: 0.2rem;
font-size: 1rem;
}
.titre_img {

View file

@ -1,5 +1,5 @@
<div class="row liste-articles-encadres">
[(#REM) On affiche ensuite les groupes réguliers, par ville]
[(#REM) On affiche les groupes réguliers, par ville]
<BOUCLE_villes(ARTICLES){id_rubrique=#ENV{id_rubrique}}{surtitre!=""}{fusion surtitre}>
<div class="col-sm-6 col-lg-3 mt-4 mt-lg-0">
@ -9,7 +9,7 @@
</BOUCLE_villes>
</div>
[(#REM) on affiche un groupe ponctuel pour les pays n'ayant pas de groupe régulier]
[(#REM) on affiche ensuite un groupe ponctuel pour les pays n'ayant pas de groupe régulier]
<BOUCLE_ponctuel(ARTICLES){id_rubrique=#ENV{id_rubrique}}{surtitre=""}{0,1}>
<div class="bloc-groupe col mt-4">
[<h3 class="h4 #EDIT{titre}">(#TITRE|sinon{"Groupes ponctuels"})</h3>]

View file

@ -14,17 +14,26 @@
[<div class="titre_img #EDIT{titre}">(#TITRE|sinon{[(#SESSION{statut}|=={0minirezo}|oui)<i>Double cliquez pour ajouter un titre</i>]})</div>]
<div class="boutons_actions">
[(#INFO_ID_SECTEUR{article,#ENV{id_article}}|=={#CONFIG{balint/id_rub_groupes}}|oui)
<div class="premier-plan">
[(#TYPE_DOCUMENT|in_array{#LISTE{JPEG,PNG,GIF}}|oui)
[(#CREDITS*|=={une}|?{
<i class="fas fa-check green"></i> Au premier plan
<i class="fas fa-flag green"></i> Bannière pour [(#INFO_SURTITRE{article, #ID_ARTICLE})]
,
<a class="btn btn_une" href="[(#URL_ACTION_AUTEUR{promouvoir_photo, [(#ID_DOCUMENT)][-(#ENV{id_article})],#SELF})]" title="Mettre en première photo">
<i class="fas fa-check"></i> Mettre au premier plan
<a class="btn btn_une" href="[(#URL_ACTION_AUTEUR{choisir_banniere, [(#ID_DOCUMENT)][-(#ENV{id_article})],#SELF})]" title="Mettre en première photo">
<i class="fas fa-flag"></i> Bannière pour [(#INFO_SURTITRE{article, #ID_ARTICLE})]
</a>
})]
]
</div>
<div class="premier-plan">
[(#TYPE_DOCUMENT|in_array{#LISTE{JPEG,PNG,GIF}}|oui)
[(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|oui)
<i class="fas fa-picture-o green"></i> Photo du groupe
]
]
</div>
]
<a class="btn btn_poubelle" href="[(#URL_ACTION_AUTEUR{supprimer_photo, [(#ID_DOCUMENT)][-(#ENV{id_article})],#SELF})]" title="Supprimer la photo">
<i class="fas fa-trash red"></i> Supprimer
</a>

View file

@ -1,9 +1,12 @@
[(#REM) On affiche tous les groupes appartenant à la même Ville]
[(#REM) On récupère l'id_rubrique s'il n'a pas été passé en paramètre]
[(#ENV{id_rubrique,#INFO_ID_RUBRIQUE{article,#ENV{id_article}}}|setenv{id_rubrique})]
[(#REM) On affiche tous les groupes appartenant à la même Ville]
#SET{ville,#INFO_SURTITRE{article,#ENV{id_article}}}
[(#REM) On récupère les id de tous les groupes de la ville pour les actualités et les images]
[(#SET{groupes,#ARRAY})]
<BOUCLE_groupes(ARTICLES){surtitre = #GET{ville}}{id_secteur=#CONFIG{balint/id_rub_groupes}}>
[(#SET{groupes,#GET{groupes}|push{#ID_ARTICLE}})]
</BOUCLE_groupes>
@ -11,7 +14,7 @@
<a href="[(#URL_PAGE{groupes,id_rubrique=#ENV{id_rubrique}})]" class="ajax"><i class="fas fa-arrow-circle-left"></i> Retour</a>
<div class="banniere-ville mt-4 mb-4">
<BOUCLE_banniere(DOCUMENTS){id_article IN #GET{groupes}}{extension==jpg|png|gif}{!par date}{0,1}>
<BOUCLE_banniere(DOCUMENTS){id_article IN #GET{groupes}}{extension==jpg|png|gif}{!par credits}{!par date}{0,1}>
[(#FICHIER|image_recadre{1200:300,-,focus}|image_reduire{1200,300})]
</BOUCLE_banniere>
[(#CHEMIN{img/ville.png}|image_recadre{1200:300,-,focus}|image_reduire{1200,300})]
@ -34,7 +37,15 @@
<a class="btn" href="#URL_PAGE{editer_groupe,id_article=#ID_ARTICLE }"><i class="fas fa-edit"></i> Mettre à jour le groupe</a>
]
<div class="row">
<div class="col-md-8">
<div class="col-md-4">
<BOUCLE_photo(DOCUMENTS){id_article}{extension==jpg|png|gif}{credits=groupe}{0,1}>
<div class="mb-4 mb-lg-0">
[(#FICHIER|image_recadre{400:250,-,focus}|image_reduire{400,250})]
</div>
</BOUCLE_photo>
</div>
<div class="col-md-4">
[<div class="texte"><strong>Adresse :</strong> (#SOUSTITRE)</div>]
[<div class="texte"><strong>Fréquence :</strong> (#DESCRIPTIF|textebrut)</div>]
<div class="texte">#TEXTE</div>

View file

@ -1,7 +1,15 @@
#CACHE{0}
[(#ENV{id_article}|=={0}|oui) [(#SESSION{id_auteur}|mult{-1}|setenv{id_article})] ]
[(#REM) On récupère les id de tous les groupes de la ville pour les actualités et les images]
#SET{ville,#INFO_SURTITRE{article,#ENV{id_article}}}
[(#SET{groupes,#ARRAY})]
<BOUCLE_groupes(ARTICLES){surtitre = #GET{ville}}{id_secteur=#CONFIG{balint/id_rub_groupes}}{si #ENV{groupe}|=={oui}}>
[(#SET{groupes,#GET{groupes}|push{#ID_ARTICLE}})]
</BOUCLE_groupes>
<div class="photo-article">
<BOUCLE_doc(DOCUMENTS){id_article?}{extension==jpg|png|gif}{statut in prop,prepa,publie}{0,1}{!par credits}{!par id_document}>
<BOUCLE_doc(DOCUMENTS){id_article IN #GET{groupes}}{extension==jpg|png|gif}{statut in prop,prepa,publie}{0,1}{!par credits}{!par id_document}>
[(#FICHIER|balise_img{#TITRE}|image_recadre{720:360,-,focus,transparent}|image_reduire{720,360})]
</BOUCLE_doc>
<div class="txtcenter placeholder">