en | fr  | Contact  | Print  | Share

FrameBeurk File

Fmbk/Module/Rhum/Commentaire/helpersCommentaire.php

<?php //FrameBeurk V0.65 Copyright ToolOscope 2016. Licence CeCILL-C.

function Rhum_carteCommentaire($result1$sufxCss$IdEtatSujet$IdCreateurSujet$topDansListe) {
  global 
$CONFIG;
  
  if (list(
$IdElementDe$IdCommentaire$Commentaire$IdCommentaireRef$IdCreateur$User$TsCRE$IdEtatCommentaire$Alerte$NbrVotes$Note$Donnees$Import) = db_FETCH_ROW($result1)) {
    
$EtatCommentaire Beurk_terminal($IdEtatCommentaire);

    
//on n'affiche pas le contenu du commentaire s'il y a une alerte, sauf pour le IdCreateur de la discussion et pour l'admin
    
$topAffichDonnees Rhum_topAfficheContenuCommentaire($NbrVotes$Note$IdEtatCommentaire$Alerte$IdCreateurSujet);

    
//vérification présence import
    
$topafficheimport false;
    if (! 
$topDansListe && ($Import != '')) {
        if (
file_exists(INSTALL_PATH '/prive/' $Import))
            
$topafficheimport true;

        else 
Beurk_messageEtape('Import inconnu'true);
    }

    
//titre
    
$toplien = (($IdElementDe == $CONFIG['Entite']['News']['Id']) ? false true);
    
$titre = ($toplien == false) ? Beurk_DB2HTML($Commentaire)
        : (
'<a href="' Beurk_URL(array('ActVue' => 'detail''IdVue' => $IdCommentaire)) .'" data-ajax="Page">'
            
Beurk_DB2HTML($Commentaire) . '</a>');

    
//createur
    
$createur '<a href="' Beurk_URL(array('ActVue' => 'detail''IdVue' => $IdCreateur)) . '" data-ajax="Page" rel="author">' $User '</a>, '
        
Beurk_traduit('il y a %s''Kom1'Kom1_formateTempsRelatif($TsCRE)); 

    
//infos
    
$infos '<div class="avis" id="' Beurk_nomDivAccueil(array('avis'$IdCommentaire)) . '">
'        
Rhum_formateAvis($NbrVotes$Note) . '</div>'
        
. (($Alerte == 'O') ? ('<br />' Beurk_traduit('Alerte signalée''Kom1')) : '')
        . ((
$EtatCommentaire == 'C') ? ('<br />' Beurk_traduit('Commentaire %s''Rhum'Rhum_libelleEtatCommentaire($EtatCommentaire))) : '');
    
    
//commentaire
    
$commentaire Kom1_DB2HTML_BB($Donnees);
    
    
// réponses
    
$reponses '';
    
$sufxCss2 $sufxCss;    // pour que les réponses soient dans la couleur alternative à celle du commentaire

    
$result2 db_QUERY(Rhum_queryReponsesCommentaire($IdCommentaire));
    while (
$reponse Rhum_carteReponseCommentaire($result2$sufxCss2$IdEtatSujet))
        
$reponses .= $reponse;

    
db_FREE($result2);
    
    
    
// majs
    
$tabAdresse array_merge(Beurk_clefVuePage(), array('IdMaj' => $IdCommentaire));
    
$majs '';

    if (
$EtatCommentaire != 'C')
        
$majs .= Rhum_formateVote($IdCommentaire)
            . 
Kom1_actionVueMaj('Editer', array('ActVue' => 'modifie''IdVue' => $IdCommentaire));

    if (
$Alerte == 'O')
        
$majs .= Kom1_actionMaj('Censurer'$tabAdresse'censure')
            . 
Kom1_actionMaj('Réhabiliter'$tabAdresse'rehabilite');

    elseif (
$EtatCommentaire == 'V')
        
$majs .= Kom1_actionVueMaj('Alerter', array('ActVue' => 'alerte''IdVue' => $IdCommentaire));

    elseif (
$EtatCommentaire == 'T')
        
$majs .= Kom1_actionMaj('Approuver'$tabAdresse'active')
            . 
Kom1_actionMaj('Censurer'$tabAdresse'censure');

    
//action répondre
    
$EtatSujet Beurk_terminal($IdEtatSujet);
    if (
$EtatSujet == 'V' && $EtatCommentaire == 'V')
        
$majs .= Kom1_actionVueMaj('Répondre', array('ActVue' => 'repondre''IdVue' => $IdCommentaire));

    
Kom1_carteEntite('Commentaire'$IdCommentaire$sufxCss$titre$createur$infos$commentaire''$majs$topAffichDonnees$reponses);

    echo 
Beurk_flushDivsAccueil();        // sortie des divs d'accueil

    //affichage Import
    
if ($topafficheimport)
        include(
INSTALL_PATH '/prive/' $Import);

    return 
true//ok
  
} else return false//pas ou plus de discussions
}

//renvoie une réponse à un commentaire --------------------------------------------------------------------------------
function Rhum_carteReponseCommentaire($result1$sufxCss$IdEtatSujet) {
  
  if (list(
$IdElementDe$IdCommentaire$Commentaire$IdCommentaireRef$IdCreateur$User$TsCRE$IdEtatCommentaire$Alerte$NbrVotes$Note$Donnees$Import) = db_FETCH_ROW($result1)) {
    
$EtatCommentaire Beurk_terminal($IdEtatCommentaire);

    
//titre
    
$titre Beurk_DB2HTML($Commentaire);

    
//createur
    
$createur '<a href="' Beurk_URL(array('ActVue' => 'detail''IdVue' => $IdCreateur)) . '" data-ajax="Page" rel="author">' $User '</a>, '
        
Beurk_traduit('il y a %s''Kom1'Kom1_formateTempsRelatif($TsCRE)); 
    
    
//infos
    
$infos '<span class="avis" id="' Beurk_nomDivAccueil(array('avis'$IdCommentaire)) . '">
'        
Rhum_formateAvis($NbrVotes$Note) . '</span>
'        
. (($Alerte == 'O') ? ('&nbsp;' Beurk_traduit('Alerte signalée''Kom1')) : '')
        . ((
$EtatCommentaire == 'C') ? (Beurk_traduit('Commentaire %s''Rhum'Rhum_libelleEtatCommentaire($EtatCommentaire))) : '');
    
    
//commentaire
    
$commentaire Kom1_remplaceBBCodes(htmlspecialchars($DonneesENT_NOQUOTES'UTF-8')); // Kom1_DB2HTML_BB($Donnees); sans le nl2br
    
    // majs
    
$tabAdresse array_merge(Beurk_clefVuePage(), array('IdMaj' => $IdCommentaire));
    
$majs '';
    
    if (
$EtatCommentaire != 'C')
        
$majs .= Rhum_formateVote($IdCommentaire)
            . 
Kom1_actionVueMaj('Editer', array('ActVue' => 'modifie''IdVue' => $IdCommentaire));

    if (
$Alerte == 'O')
        
$majs .= Kom1_actionMaj('Censurer'$tabAdresse'censure')
            . 
Kom1_actionMaj('Réhabiliter'$tabAdresse'rehabilite');

    elseif (
$EtatCommentaire == 'V')
        
$majs .= Kom1_actionVueMaj('Alerter', array('ActVue' => 'alerte''IdVue' => $IdCommentaire));

    elseif (
$EtatCommentaire == 'T')
        
$majs .= Kom1_actionMaj('Approuver'$tabAdresse'active')
            . 
Kom1_actionMaj('Censurer'$tabAdresse'censure');

    return 
'<div class="Reponse_l' $sufxCss '">
<span class="Reponse_c1">
$titre '
</span>
<span class="Reponse_c6">
$commentaire '
</span>
<span class="Reponse_c2">
$createur '
</span>
<span class="Reponse_c3">
$infos 
'</span>
<div class="listeMajs">
$majs 
'</div>
<div class="enbas"></div>
</div>
'
;    // les divs d'accueil des réponses sont au même endroit que celles du commentaire en référence

  
} else return false//pas ou plus de réponse
}

//affichage d'un formulaire de saisie adapté pour les commentaires (fonction dérivée de Kom1_carteMajEntite)
//$IdRef alimenté pour les créations, '' sinon. 
//$IdMaj alimenté pour les autres actions, '' sinon
function Rhum_carteMajCommentaire($ActMaj$IdMaj$topImportAdmin$IdRef ''$IdCommentaireRef 0
                                                        
$titreObj ''$donneesObj ''$importObj '') {
    global 
$TRANSAC;

    
$TRANSAC['Page']['ForceTabIndex'] = true;                // force l'utilisation des tabIndex pour éviter que les select de BBCodes soient avant les données
    
$IdMaj Beurk_id($IdMaj);

    
// spécial gestion des réponses aux commentaires
    
$extraActions '';
    if (
$IdCommentaireRef == 0) {
        if (
$ActMaj == 'cree')
            
$libelleref 'Nouvelle entrée';
        elseif (
$ActMaj == 'repondre') {
            
$libelleref Rhum_libelleCommentaireRef($IdMaj);
            
$extraActions '<input id="citeCommentaire" type="button" value="' Beurk_traduit('Citer le commentaire''Rhum') . '" data-cite="' $ActMaj '/' $IdMaj '">';
        } else    
// modifie
            
$libelleref 'Commentaire sans référence';

    } else {    
// modifie
        
$libelleref Rhum_libelleCommentaireRef($IdCommentaireRef);
        
$extraActions '<input id="citeCommentaire" type="button" value="' Beurk_traduit('Citer le commentaire''Rhum') . '" data-cite="' $ActMaj '/' $IdCommentaireRef '">';
    }
    
// fin spécial
  
    
echo Beurk_divAccueil(array('ActVue' => 'previsualise''IdVue' => $IdMaj), 'inPopUp'),
'<form id="'$TRANSAC['Vue']['Form'], '" class="saisieVue" action="'Kom1_urlReafficheSite(), '" method="post" enctype="application/x-www-form-urlencoded">
'
Kom1_formateDivErreur(), '
<div>
'
$libelleref'
</div>
'
,         Beurk_fieldset ('Titre',     Beurk_baliseInput('text'"titre$IdMaj"$titreObj''''80)),
        
Kom1_formateDivBBcodes($ActMaj$IdMaj$extraActions),
        
Beurk_fieldset ('Contenu'Beurk_baliseTextarea("donnees$IdMaj"$donneesObj'''virtual')),
        ((
Uzers_estAdmin() && ($topImportAdmin)) ? 
            
Beurk_fieldset ('Import'Beurk_baliseInput('text'"import$IdMaj"$importObj''''80))
            : 
''),
        ((! 
Uzers_estLogue()) ?
            (
Beurk_fieldset ('Attention'Beurk_baliseCheckBox('attention''1'false)
                                        . 
Beurk_traduit('<b>Vous n\'êtes pas logués</b>. Votre message apparaitra avec le nom "anonymous", <u>après approbation de son contenu</u>, et ne sera pas éditable par la suite.')))
            : 
''),            
        
Kom1_formateValidation($ActMaj$IdMajBeurk_traduit('votre entrée'), (! Uzers_estLogue()), true),
        ((
$IdRef != '') ? '<input type="hidden" name="IdRef" value="' $IdRef '">' ''), '
</form>
'
;
}

// recherche du commentaire en référence et formatage du lien
function Rhum_libelleCommentaireRef($IdCommentaireRef) {
    
$result db_QUERY('SELECT U.User, H.TsAction '
        
'FROM Rhum_Commentaire AS C '
        
'LEFT JOIN Beurk_Historique AS H ON H.IdNoeud = C.IdCommentaire AND H.NoVersion = 1 '
        
'LEFT JOIN Uzers_User AS U ON H.IdUser = U.IdUser '
        
"WHERE C.IdCommentaire = '$IdCommentaireRef' AND C.IdEtat <> '" Beurk_id('C') . "'");
    if (list(
$UserRef$TsCRERef) = db_FETCH_ROW($result))
        
$libelle Beurk_traduit('En réponse à %s, il y a %s''Rhum'$UserRefKom1_formateTempsRelatif($TsCRERef));
    else
        
$libelle false;

    
db_FREE($result);
    return 
$libelle;
}


//determine si le commentaire est condensé ou pas
function Rhum_topAfficheContenuCommentaire($NbrVotes$Note$IdEtat$Alerte$IdCreateurSujet) {
    if (
Uzers_estUserLogue($IdCreateurSujet) || Uzers_estAdmin())
        return 
1;
    
// A partir de 10 votes, la note doit être supérieure à 0 pour que le commentaire soit affiché
    
if ($Alerte == 'O' || ($NbrVotes >= 10 && $Note 0))
        return 
0;
    return 
1;
}

//avis des commentaires
function Rhum_formateAvis($NbrVotes$Note) {
    return 
Kom1_traduitQuantite('%d&nbsp;avis''Rhum'$NbrVotes) . '&nbsp;: ' . (($Note 0) ? '+' '') . $Note;
}

//avis des commentaires
function Rhum_formateVote($IdVue) {
    global 
$DIALOG;
    
    if (! isset(
$DIALOG['Historique']['vote' $IdVue])) {        // seulement si pas déjà voté lors de la session
        
$tabActionMaj = array('IdMaj' => $IdVue);
        
        return 
'<span class="vote" id="vote.' $IdVue '">
Beurk_traduit('Intérêt''Rhum') . ' : '
            
//. Kom1_actionMaj('--', $tabActionMaj, 'vote', '', array("data-vote" => "-2/$IdVue"))
            
Kom1_actionMaj('-'$tabActionMaj'vote''', array("data-vote" => "-1/$IdVue"))
            
//. Kom1_actionMaj('?', $tabActionMaj, 'vote', '', array("data-vote" => "0/$IdVue")
            
Kom1_actionMaj('+'$tabActionMaj'vote''', array("data-vote" => "1/$IdVue"))
            
//. Kom1_actionMaj('++', $tabActionMaj, 'vote', '', array("data-vote" => "2/$IdVue"))        
            
'</span>
'
;
    }
}
        
// fonction appelée par le controleur de recherche
function Rhum_carteCommentaireTrouve($sufxCss$IdCommentaire$Commentaire$IdCreateur$User$TsCRE$NbrVotes$Note$Donnees$IdElementDe$score) {
    global 
$CONFIG;
    
Kom1_carteEntite('Commentaire'$IdCommentaire$sufxCss
        
'<a href="' . ((Beurk_terminal($IdElementDefalse) == 'News'
                        ? 
Beurk_URL(array('ActVue' => 'detail''IdVue' => 'News''IdCommentaire' => $IdCommentaire))
                        : 
Beurk_URL(array('ActVue' => 'detail''IdVue' => $IdCommentaire)) )
            . 
'" data-ajax="Page">' Beurk_DB2HTML($Commentaire) . '</a>',
        
Beurk_traduit('Commentaire émis par %s, il y a %s''Rhum'$UserKom1_formateTempsRelatif($TsCRE)),
        
Beurk_traduit('Pertinence&nbsp;=&nbsp;%s''Kom1'round($score2))
        . 
'<br />' Rhum_formateAvis($NbrVotes$Note),
        
Kom1_DB2HTML_BB($Donneestrue),
        
'''', -1);
}

function 
Rhum_libelleEtatCommentaire($IdEtat) {

    
$Etat Beurk_terminal($IdEtat);        // accepte une id ou un terminal d'état
    
    
if ($Etat == 'V')
        return 
Beurk_traduit('valide''Kom1');
    elseif (
$Etat == 'C')
        return 
Beurk_traduit('censuré''Kom1');
    elseif (
$Etat == 'T')
        return 
Beurk_traduit('à approuver''Kom1');
    else
        return 
Beurk_traduit('Etat ?''Kom1');
}


© 2010-2015 by ToolOscope SASU. © 2016-2018 by Arnaud De Rette. All rights reserved