FrameBeurk File
Fmbk/Module/Rhum/Sujet/helpersSujet.php
<?php //FrameBeurk V0.65 Copyright ToolOscope 2016. Licence CeCILL-C.
function Rhum_carteSujet($result, $sufxCss, $topDansListe) {
if (list($IdSujet, $Sujet, $IdSection, $NbrCommentaires, $IdCreateurSujet, $User, $TsCRE, $TsMajElements,
$IdEtatSujet, $Alerte, $NbrVisites, $Donnees, $Import, $IdSujetRef, $NoOrdre) = db_FETCH_ROW($result)) {
$EtatSujet = Beurk_terminal($IdEtatSujet);
//vérification présence import
$topAfficheDonnees = true;
$topafficheimport = false;
if (! $topDansListe && ($Import != '')) {
if (file_exists(INSTALL_PATH . '/prive/' . $Import)) {
$topafficheimport = true;
// $topAfficheDonnees = false;
} else Beurk_messageEtape('Import inconnu', true);
}
//titre
$titre = '<a href="' . Beurk_URL(array('ActVue' => 'detail', 'IdVue' => $IdSujet)) .'" data-ajax="Page">' . Beurk_DB2HTML($Sujet) . '</a>';
//createur
$createur = '<a href="' . Beurk_URL(array('ActVue' => 'detail', 'IdVue' => $IdCreateurSujet)) . '" data-ajax="Page" rel="author">' . $User . '</a>, '
. Beurk_traduit('il y a %s', 'Kom1', Kom1_formateTempsRelatif($TsCRE)) . '<br />'
. (($TsMajElements) ? Beurk_traduit('Dernière contribution il y a %s', 'Kom1', Kom1_formateTempsRelatif($TsMajElements)) : '');
//infos
$infos = Beurk_traduit('Sujet %s', 'Rhum', Rhum_libelleEtatSujet($IdEtatSujet))
. '<br />' . Kom1_traduitQuantite('%d commentaire%s', 'Rhum', $NbrCommentaires) . ', '
. Kom1_traduitQuantite('%d visite%s', 'Rhum', $NbrVisites)
. (($Alerte == 'O') ? ('<br />' . Beurk_traduit('Alerte signalée', 'Kom1')) : '');
//sujet
$sujet = Kom1_DB2HTML_BB($Donnees, $topDansListe); // en abrégé si dans une liste
//liste des parties du sujet (si multi-parties)
$pages = ($IdSujetRef != 0) ? Rhum_formateListeChapitres ($IdSujetRef, $topDansListe, $NoOrdre, $sufxCss ) : '';
// liste des majs (fermer, censurer, archiver, alerter, nouvelle partie)
$majs = '';
$tabAdresse = array_merge(Beurk_clefVuePage(), array('IdMaj' => $IdSujet));
if (($IdSujetRef == 0 || $IdSujetRef == $IdSujet) && ! $topDansListe)
$majs .= Kom1_actionVueMaj('Changer de section', array('ActVue' => 'deplace', 'IdVue' => $IdSujet));
if ($EtatSujet == 'V')
$majs .= Kom1_actionVueMaj('Editer', array('ActVue' => 'modifie', 'IdVue' => $IdSujet))
. Kom1_actionMaj('Fermer', $tabAdresse, 'ferme')
. Kom1_actionVueMaj('Ajouter un chapitre', array('ActVue' => 'continue', 'IdVue' => $IdSujet)); // sujet 1ère partie
elseif ($EtatSujet == 'F')
$majs .= Kom1_actionMaj('Archiver', $tabAdresse, 'archive')
. Kom1_actionMaj('Réactiver', $tabAdresse, 'reactive');
if ($Alerte == 'O')
$majs .= Kom1_actionMaj('Censurer', $tabAdresse, 'censure')
. Kom1_actionMaj('Réhabiliter', $tabAdresse, 'rehabilite');
else
$majs .= Kom1_actionVueMaj('Alerter', array('ActVue' => 'alerte', 'IdVue' => $IdSujet));
Kom1_carteEntite('Sujet', $IdSujet, $sufxCss, $titre, $createur, $infos, $sujet, $pages, $majs, $topAfficheDonnees);
echo Beurk_flushDivsAccueil(); // sortie des divs d'accueil
//affichage Import
if ($topafficheimport)
include(INSTALL_PATH . '/prive/' . $Import);
return array($IdEtatSujet, $NbrCommentaires, $Sujet, $IdCreateurSujet); //ok
} else return false; //pas ou plus de discussions
}
// formate la liste des chapitres d'un sujet en plusieurs parties
function Rhum_formateListeChapitres ($IdSujetRef, $topDansListe, $NoOrdreCourant, $sufxCss) {
$listeChapitres = '';
$sufxCss = 1 - $sufxCss;
$result = db_QUERY(Rhum_queryPartiesSujet($IdSujetRef));
$nbChapitres = db_NB_SELECTED($result);
while (list($IdSujet, $Sujet, $IdEtat, $NoOrdre) = db_FETCH_ROW($result))
$listeChapitres .=
'<div class="Chapitre_c1">
' . $NoOrdre . ' - ' . (($NoOrdre == $NoOrdreCourant && ! $topDansListe) ? $Sujet
: ('<a href="' . Beurk_URL(array('ActVue' => 'detail', 'IdVue' => $IdSujet)) . '" data-ajax="Page">' . $Sujet . '</a>')) . '
</div>
';
db_FREE($result);
if ($listeChapitres != '')
$listeChapitres =
'<div class="listeChapitres">
<div class="Chapitre_m' . $sufxCss . (($topDansListe) ? ' expFerme' : ' expOuvert') . '" data-bascule="chapitresSujet' . $IdSujetRef . '">
' . Kom1_traduitQuantite('%d partie%s', 'Rhum', $nbChapitres) . '
</div>
<div class="Chapitre_l' . $sufxCss . '" id="chapitresSujet' . $IdSujetRef . '"' .(($topDansListe) ? ' style="display:none;"' : '') . '>
' . $listeChapitres . '
</div>
</div>
';
return $listeChapitres;
}
// fonction appelée par le controleur de recherche
function Rhum_carteSujetTrouve($sufxCss, $IdSujet, $Sujet, $IdCreateur, $User, $TsCRE, $NbrCommentaires, $NbrVisites, $Donnees, $unused, $score) {
Kom1_carteEntite('Sujet', $IdSujet, $sufxCss,
'<a href="' . Beurk_URL(array('ActVue' => 'detail', 'IdVue' => $IdSujet)) . '" data-ajax="Page">' . Beurk_DB2HTML($Sujet) . '</a>
', Beurk_traduit('Sujet lancé par %s, il y a %s', 'Rhum', $User, Kom1_formateTempsRelatif($TsCRE)),
Beurk_traduit('Pertinence = %s', 'Kom1', round($score, 2))
. '<br />' . Kom1_traduitQuantite('%d commentaire%s', 'Rhum', $NbrCommentaires) . ', ' . Kom1_traduitQuantite('%d visite%s', 'Rhum', $NbrVisites),
Kom1_DB2HTML_BB($Donnees, true),
'', '', -1);
}
function Rhum_libelleEtatSujet($IdEtat) {
$Etat = Beurk_terminal($IdEtat);
if ($Etat == 'V')
return Beurk_traduit('ouvert', 'Kom1');
elseif ($etat == 'F')
return Beurk_traduit('fermé', 'Kom1');
elseif ($etat == 'C')
return Beurk_traduit('censuré', 'Kom1');
elseif ($etat == 'R')
return Beurk_traduit('archivé', 'Kom1');
else
return Beurk_traduit('Etat ?', 'Kom1');
}