en | fr  | Contact  | Print  | Share

FrameBeurk File

Fmbk/Module/Kom1/helpersKom1.php

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

// formate un lien vers une maj.
// $ActMaj est ajouté à $tabActionMaj, pour définir l'URL de la maj
function Kom1_actionMaj($nomAction$tabActionMaj$ActMaj$module ''$tabAttribut = array()) {
    global 
$CONFIG;
    
    
//vérification autorisation
    
$IdMaj $tabActionMaj['IdMaj'];
    
$EntMaj Beurk_entiteAction('Maj'$ActMaj$IdMaj);    
    
$messageAuto Beurk_controleurAutorisation($CONFIG['Entite'][$EntMaj]['Maj'][$ActMaj]['Auto'],
                                                array(
'ActMaj' => $ActMaj,
                                                    
'IdMaj'  => $IdMaj,
                                                    
'IdRef'  => (isset($tabActionMaj['IdRef'])) ? $tabActionMaj['IdRef'] : 0,
                                                    
'preAuto' => true)); // preAuto=true inhibe les autos qui ont besoin d'un résultat (état jeton, controle somme...)
    
if ($messageAuto == '') {
        
        
// gestion des attributs / javascript discret
        
if (empty($tabAttribut))        // par défaut réaffichage Ajax de la div principale
            
$tabAttribut['data-ajax'] = 'Page';
        
$attrbs '';
        foreach(
$tabAttribut as $attribut => $valeur)
            
$attrbs .= ' ' $attribut '="' $valeur '"';

        
$tabActionMaj['ActMaj'] = $ActMaj;
        return 
'<a class="maj" rel="nofollow" href="' Beurk_URL($tabActionMaj) . '" '
            
$attrbs '>' Beurk_traduit($nomAction$module) . '</a>
'
;
    } 
// else echo $ActMaj . '-' . $IdMaj . ' : ' . ((is_array($messageAuto)) ? $messageAuto[0] : $messageAuto);
}

// controle si le user est autorisé à la vue demandée et le cas échéant, formate un lien pour afficher cette vue (associée à une maj).
function Kom1_actionVueMaj($nomAction$tabActionVue$dataAjax '') {
    global 
$CONFIG$TRANSAC;
    
    
//vérification autorisation
    
$ActVue $tabActionVue['ActVue'];
    
$IdVue $tabActionVue['IdVue'];
    
$EntVue Beurk_entiteAction('Vue'$ActVue$IdVue);    
    
$messageAuto Beurk_controleurAutorisation($CONFIG['Entite'][$EntVue]['Vue'][$ActVue]['Auto'],
                                                array(
'ActMaj' => $ActVue,
                                                    
'IdMaj'  => $IdVue,
                                                    
'IdRef'  => (isset($tabActionVue['IdRef'])) ? $tabActionVue['IdRef'] : 0,
                                                    
'preAuto' => true)); //inhibe les autos qui ont besoin d'un résultat (état jeton, controle somme...)
    
if ($messageAuto == '') {
        
        if (
$dataAjax == '')     // l'attribut data-ajax est de la forme <DivVueChargement>/<DivVue>/<DivVueErr> (au moins 1 div obligatoirement)
            
$dataAjax Beurk_nomDivAccueil($tabActionVue);
        
        
// stockage de la div d'accueil de l'action
        
$TRANSAC['Page']['DivActions'] .= Beurk_divAccueil($tabActionVue'PopUp''popup');
        
        return 
'<a class="maj" rel="nofollow" href="' Beurk_URL($tabActionVue) . '" data-ajax="'    $dataAjax  '">' Beurk_traduit($nomAction) . '...</a>
'
;
    } 
// else echo $ActVue . '-' . $IdVue . ' (' . $EntVue . ') : ' . ((is_array($messageAuto)) ? $messageAuto[0] : $messageAuto);
}

//fonction appelée par Kom1_listePages()
function Kom1_lienNoPage($NoPageAffichee$NoPageCourante$tabAdresse) {
    
$tabAdresse['NoPage'] = $NoPageAffichee;
    return (
$NoPageAffichee == $NoPageCourante) ? "-$NoPageCourante-\n" 
            
: ('<a href="' Beurk_URL($tabAdresse) . '" data-ajax="Page">&nbsp;' $NoPageAffichee "&nbsp;</a>\n");
}

//liste de pages en cas de dépassement du nombre d'Item par page
function Kom1_listePages($NbrItem$NoPage$tabAdresse) {
  global 
$DIALOG;
  
$listePages '';
  if (
$NbrItem $DIALOG['Pagination']) { //seulement si plus d'une page
    
$listePages '<div class="listePages">';
    
$nbpages intval($NbrItem $DIALOG['Pagination']) + (($NbrItem $DIALOG['Pagination']) ? 0);
    
$noDebListe = ($NoPage 3) ? ($NoPage 2) : 1;    //1ère page de la liste de 5 centrée sur noPage
    
$noFinListe = (($nbpages $NoPage) > 2) ? ($NoPage 2) : $nbpages;    //dernière page de la liste de 5

    
if ($noDebListe 1)
        
$listePages .= Kom1_lienNoPage(1$NoPage$tabAdresse);
    if (
$noDebListe 2)
        
$listePages .= '<span class="suitepages"> ...</span>' "\n";
    for (
$nop $noDebListe$nop <= $noFinListe$nop++)
        
$listePages .= Kom1_lienNoPage($nop$NoPage$tabAdresse);
    if (
$noFinListe < ($nbpages 1))
        
$listePages .= '<span class="suitepages"> ...</span>' "\n";
    if (
$noFinListe $nbpages)
        
$listePages .= Kom1_lienNoPage($nbpages$NoPage$tabAdresse);
        
    
$listePages .= '</div>';
  }
  return 
$listePages;
}

//affiche une entité standart
function Kom1_carteEntite($EntVue$IdVue$sufxCss$titre$createur$infos$donnees$pages$majs$topAfficheDonnees$reponses '') {
    if (
$topAfficheDonnees == 0) {            // $topAfficheDonnees : 0 = avec controle, masqué par défaut
        
$classeControle ' expFerme';
        
$attribut ' data-bascule="' $EntVue $IdVue '"';
    } elseif (
$topAfficheDonnees == 1) {    // $topAfficheDonnees : 1 = avec controle, affiché par défaut
        
$classeControle ' expOuvert';
        
$attribut ' data-bascule="' $EntVue $IdVue '"';
    } else {                                
// $topAfficheDonnees : -1  = toujours affiché / pas de controle
        
$classeControle '';
        
$attribut '';
    }
    
    echo
'<div class="'$EntVue'_l'$sufxCss'">
<div class="'
$EntVue'_c1'$classeControle'"'$attribut'>
'
$titre'
</div>
<div class="'
$EntVue'_c2">
'
$createur'
</div>
<div class="'
$EntVue'_c3">
'
$infos'
</div>
</div>'
, (($donnees != '' || $pages != '' || $majs != '' || $reponses != '') ? '
<div class="' 
$EntVue '_l' $sufxCss '" id="' $EntVue $IdVue .'"' . (($topAfficheDonnees != 0) ? '' ' style="display:none;"') . '>
<div class="' 
$EntVue '_c6">
$donnees '
<div class="enbas">
$pages 
'<div class="listeMajs">
$majs 
'</div>
</div>
</div>' 
. (($reponses != '') ? ('
<div class="reponses">
$reponses '
</div>'
) : '') . '
</div>' 
''), '
'
;
}

//affiche les liens entre 2 types d'entités
//cette fonction marche pour les liens de A vers B ou de B vers A (selon la valeur de $topAfficheRef).
//user = obj1, groupe = obj2
function Kom1_carteLienEntites($result$sufxCss$EntMaj$EntRef$topAfficheRef$topAfficheDonnees = -1) {
    global 
$CONFIG;

  if (list(
$IdLien$IdMaj$Entite$IdRef$Reference$TsCRE$TsMAJ$IdEtatLien) = db_FETCH_ROW($result)) {

    
//titre
    
if ($topAfficheRef) {
        
$tabAdresse = array('ActVue' => 'detail''IdVue' => $IdRef);
        
$messageAuto Beurk_controleurAutorisation($CONFIG['Entite'][$EntRef]['Vue']['detail']['Auto'],
                                                array(
'ActMaj' => 'detail''IdMaj'  => $IdRef'IdEtatJetonClef' => ''));
    } else {
        
$tabAdresse = array('ActVue' => 'detail''IdVue' => $IdMaj);
        
$messageAuto Beurk_controleurAutorisation($CONFIG['Entite'][$EntMaj]['Vue']['detail']['Auto'],
                                                array(
'ActMaj' => 'detail''IdMaj'  => $IdMaj'IdEtatJetonClef' => ''));
    }
    
    if (
$messageAuto == '')
        
$titre '<a href="' Beurk_URL($tabAdresse) . '" data-ajax="Page">' . (($topAfficheRef) ? $Reference $Entite) . '</a>';
    else
        
$titre = ($topAfficheRef) ? $Reference $Entite;    
    
    
//createur
    
$createur Beurk_traduit('Créé il y a %s''Kom1'Kom1_formateTempsRelatif($TsCRE)) . '<br />'
        
Beurk_traduit('Dernière MAJ il y a %s''Kom1'Kom1_formateTempsRelatif($TsMAJ));
    
    
//infos
    
$infos Beurk_traduit('Lien %s''Kom1'Kom1_libelleEtatLien($IdEtatLien));

    
//majs sur le lien
    
$tabAdresse array_merge(Beurk_clefVuePage(), array('IdMaj' => $IdLien));
    
$majs '';
    if (
$IdEtatLien == Beurk_id('V'))
        
$majs .= Kom1_actionMaj('Suspendre le lien'$tabAdresse'suspend''Kom1');
    else
        
$majs .= Kom1_actionMaj('Réactiver le lien'$tabAdresse'reactive''Kom1');

    
$majs .= Kom1_actionMaj('Supprimer le lien'$tabAdresse'supprime''Kom1');

    if (
$topAfficheRef)
        
Kom1_carteEntite($EntRef$IdRef$sufxCss$titre$createur$infos''''$majs$topAfficheDonnees);
    else
        
Kom1_carteEntite($EntMaj$IdMaj$sufxCss$titre$createur$infos''''$majs$topAfficheDonnees);

    return 
$IdEtatLien;

  } else return 
false//pas ou plus de lien

}

function 
Kom1_libelleEtatLien($IdEtat) {

    
$Etat Beurk_terminal($IdEtat);        // accepte une id ou un terminal d'état
    
    
if ($Etat == 'V')
        return 
Beurk_traduit('actif''Kom1');
    elseif (
$Etat == 'F')
        return 
Beurk_traduit('suspendu''Kom1');
    else
        return 
Beurk_traduit('Etat ?''Kom1');
}


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