F-d-ration_de_groupes/action/choisir_banniere.php

53 lines
1.6 KiB
PHP

<?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'");
}