FrameBeurk File
Fmbk/Module/Rhum/Sujet/Maj/continueSujet.php
<?php //FrameBeurk V0.65 Copyright ToolOscope 2016. Licence CeCILL-C.
if (! isset($_REQUEST["titre$IdMaj"]) || $_REQUEST["titre$IdMaj"] == '')
Beurk_messageEtape('Titre du sujet obligatoire', true, "titre$IdMaj");
else {
// recherche du sujet précédent (pas forcément la 1ère partie)
$result1 = db_QUERY("SELECT IdSection, IdSujetRef, IdEtat FROM Rhum_Sujet WHERE IdSujet = '$IdMaj'");
if (list($IdSection, $IdSujetRef, $IdEtatSujetPrec) = db_FETCH_ROW($result1)) {
if ($IdSujetRef == 0) // le sujet dont on crée la suite était seul
$IdSujetRef = $IdMaj;
if ($IdEtatSujetPrec != Beurk_id('V'))
Beurk_messageEtape('Sujet initial fermé', true);
else {
// recherche de la section
$result = db_QUERY("SELECT IdEtat FROM Rhum_Section WHERE IdSection = '$IdSection'");
if (list($IdEtatSection) = db_FETCH_ROW($result)) {
// Vérification section ouverte
if ($IdEtatSection != Beurk_id('V'))
Beurk_messageEtape('Section fermée', true);
else {
//recherche du numéro d'ordre de la dernière partie
$result2 = db_QUERY("SELECT MAX(NoOrdre) FROM Rhum_Sujet WHERE IdSujetRef = '$IdSujetRef'");
if (list($NoOrdre) = db_FETCH_ROW($result2)) //attention : si rien trouvé, MAX renvoie NULL (=0 pour php)
$NoOrdre += 1;
if ($NoOrdre < 2)
$NoOrdre = 2; //c'est la 1ère suite
// insertion du nouveau sujet
$requete = array('INSERT' => 'Rhum_Sujet',
'VALUES' => array('Sujet' => Beurk_Request2DB($_REQUEST["titre$IdMaj"]),
'IdSection' => $IdSection,
'IdSujetRef' => $IdSujetRef,
'NoOrdre' => $NoOrdre,
'NbrCommentaires' => 0,
'IdEtat' => Beurk_id('V'),
'Alerte' => '',
'NbrVisites' => 0,
'Donnees' => Beurk_Request2DB($_REQUEST["donnees$IdMaj"])));
if (Uzers_estAdmin())
$requete['VALUES']['Import'] = (isset($_REQUEST["import$IdMaj"])) ? Beurk_Request2DB($_REQUEST["import$IdMaj"]) : '';
if ($IdSujet = Beurk_creeEntite($requete, 'Sujet créé', 'V', $IdSujetRef)) { // le sujet est élément du sujet en référence (et non de la section)
// si c'est la 2ème partie d'un sujet, on stocke l'information sur le sujet de référence : il se référence lui-même
if ($NoOrdre == 2)
db_QUERY("UPDATE Rhum_Sujet SET IdSujetRef = '$IdSujetRef' WHERE IdSujet = '$IdMaj'");
// incrémentation nombre de sujets créés par le user
db_QUERY("UPDATE Uzers_User SET NbrSujets = NbrSujets + 1 WHERE IdUser = '" . $DIALOG['IdUser'] . "'");
}
}
} else Beurk_messageEtape('Section inconnue', true);
db_FREE($result);
}
} else Beurk_messageEtape('Sujet initial inconnu', true);
db_FREE($result1);
}