F-d-ration_de_groupes/formulaires/editer_sujet.php
2020-02-11 03:09:19 +01:00

134 lines
3.8 KiB
PHP

<?php
if (!defined('_ECRIRE_INC_VERSION')) return;
function formulaires_editer_sujet_charger_dist($id_article=0, $redirect=''){
$erreurs = array();
include_spip('inc/autoriser');
if (! autoriser("creer","article")) {
$erreurs['message_erreur'] = "Vous devez être connecté pour utiliser ce formulaire.";
return $erreurs;
}
// Pour récupérer les champs renseignés en cas d'erreur
$titre = _request('titre');
$texte = _request('texte');
$valeurs = array();
$valeurs['titre'] = $titre;
$valeurs['texte'] = $texte;
if (intval($id_article)) {
if (! autoriser("modifier","article", $id_article)) {
$erreurs['message_erreur'] = "Vous n'êtes pas autorisé à modifier cet article.";
return $erreurs;
}
$valeurs = sql_fetsel('*', 'spip_articles', 'id_article='.intval($id_article));
$where = array(
'id_objet='.intval($id_article),
'objet="article"',
);
$res = sql_allfetsel('id_auteur','spip_auteurs_liens',$where);
$valeurs['T_id_auteurs'] = array_column($res,'id_auteur');
}
else {
$valeurs['T_id_auteurs'] = array();
$valeurs['id_article'] = -1 * intval(session_get('id_auteur'));
}
$valeurs['_bigup_rechercher_fichiers'] = true;
return $valeurs;
}
function formulaires_editer_sujet_verifier_dist($id_article=0, $redirect=''){
$erreurs = array();
include_spip('inc/autoriser');
if (! autoriser("creer","article")) {
$erreurs['message_erreur'] = "Vous devez être connecté pour utiliser ce formulaire.";
return $erreurs;
}
if (intval($id_article)) {
if (! autoriser("modifier","article", $id_article)) {
$erreurs['message_erreur'] = "Vous n'êtes pas autorisé à modifier cet article.";
return $erreurs;
}
}
// il faut au minimum titre et un texte pour créer un article
if (_request('titre') == '' OR _request('texte') == ''){
$erreurs['message_erreur'] = "Il faut obligatoirement un titre et un texte pour créer un article.";
return $erreurs;
}
$bigform = charger_fonction('bigform_verifier','inc');
$options = ['mime' => 'tout_mime','taille_max'=>'5000','largeur_max'=>'2048','hauteur_max'=>'2048'];
$bigform($options,$erreurs);
return $erreurs;
}
function formulaires_editer_sujet_traiter_dist($id_article = 0, $redirect = ''){
$new = $id_article;
$id_rubrique = lire_config('balint/id_rub_forum');
if (!intval($id_article)) {
include_spip('action/editer_article');
$set = array(
'statut' => 'publie'
);
$id_article = article_inserer($id_rubrique,$set);
}
// enregistrement de l'image
if (!intval($new)) {
$where = array(
'objet="article"',
'id_objet='.intval(session_get('id_auteur')) * -1
);
sql_updateq('spip_documents_liens',array('id_objet' => intval($id_article)), $where);
}
// maj de l'article
$set = array(
'titre' => _request('titre'),
'texte' => _request('texte')
);
sql_updateq('spip_articles',$set,'id_article='.intval($id_article));
// maj association article -> auteurs
include_spip('action/editer_liens');
$where = array(
'id_objet='.intval($id_article),
'objet="article"',
);
$ids_auteurs = sql_allfetsel('id_auteur', 'spip_auteurs_liens', $where);
$ids_auteurs = array_column($ids_auteurs, 'id_auteur');
$Tauteurs = _request('Tauteurs');
if (count($Tauteurs)) {
$associer = array_diff($Tauteurs, $ids_auteurs);
$dissocier = array_diff($ids_auteurs, $Tauteurs);
objet_associer( array('auteur' => $associer),array('article' => intval($id_article) ));
objet_dissocier( array('auteur' => $dissocier) , array('article' =>intval($id_article) ));
}
include_spip('inc/invalideur');
suivre_invalideur("id='id_article/1'");
$retour = array();
$retour['message_ok'] = "Le sujet a bien été créé.";
$retour['redirect'] = $redirect;
$bigform = charger_fonction('bigform_traiter','inc');
$bigform($id_article, 'article');
return $retour;
}