en | fr  | Contact  | Print  | Share

FrameBeurk File

Fmbk/Module/Beurk/controleurVue.php

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

$TRANSAC['Etape'] = 'Vue';                                // initialisation de l'action en cours

$TRANSAC['Vue'] = array('Module' => 'Beurk',            // module par défaut (utilisé par Beurk_traduit pour les messages de ce controleur)
                        
'Erreur' => false,
                        
'Form' => '',
                        
'Div' => '',
                        
'Genere' => '',
                        
'DivNormale' => '',                // nom de la div calculé à partir du nom de l'action
                        
'ChampErreur' => '',
                        
'Champ' => array(),
                        
'sommeControle' => -1,
                        
'ClefPermission' => '');

// ------  gestion de la clef de la vue courante --------------

if (isset($TRANSAC['Maj']) && $TRANSAC['Maj']['Erreur'] && isset($_REQUEST['ActVueErr']) && isset($_REQUEST['IdVueErr'])) {    // 1er cas : en cas d'erreur Maj et si une clef de vue d'erreur est précisée
    
$ActVue Beurk_terminal($_REQUEST['ActVueErr']);
    
$IdVue Beurk_id($_REQUEST['IdVueErr']);
    if (
$EntAct Beurk_entiteAction('Vue'$ActVue$IdVue))
        
Beurk_alimenteChampsAction('Vue'$ActVue$EntAct$IdVue'Err');

} elseif (isset(
$_REQUEST['JetonVue'])) {                                            // 2ème cas : décodage du jeton clef de Vue si renseigné
    
$JetonVue $_REQUEST['JetonVue'];
    include(
INSTALL_PATH '/Module/' $CONFIG['Entite']['Clef']['Module'] . '/Clef/Maj/utiliseClef.php');
    unset(
$JetonVue);
    if (! 
$TRANSAC['Vue']['Erreur']) {
        
$TRANSAC['Vue']['Champ'] = array('ActVue' => $ActVue'IdVue' => $IdVue);
        
$EntAct Beurk_entiteAction('Vue'$ActVue$IdVue);
    }
    
} elseif (isset(
$_REQUEST['ActVue'])) {                                                // 3ème cas : si la clef d'affichage est précisée
    
$ActVue Beurk_terminal($_REQUEST['ActVue']);
    
$IdVue = (isset($_REQUEST['IdVue'])) ? Beurk_id($_REQUEST['IdVue']) : 0;    // Beurk_terminalOuId
    
if ($EntAct Beurk_entiteAction('Vue'$ActVue$IdVue))
        
Beurk_alimenteChampsAction('Vue'$ActVue$EntAct$IdVue);

} elseif (! empty(
$DIALOG['ClefVuePage'])) {                                        // 4ème cas : si la dernière clef d'affichage stockée est toujours en session
    
foreach ($DIALOG['ClefVuePage'] as $champ => $valeur) {
        
$TRANSAC['Vue']['Champ'][$champ] = $valeur;
        
$GLOBALS[$champ] = $valeur;                        // instanciation en variables globales des champs de la clef
    
}
    
$EntAct Beurk_entiteAction('Vue'$ActVue$IdVue);
}

if ((! isset(
$ActVue)) || (! isset($IdVue)) || $ActVue == '' || $IdVue === 0) {        // 5ème cas : affichage par défaut (déclaré dans configFmbk.php)
    
$ActVue $CONFIG['Defaut']['ActVue'];
    
$IdVue $CONFIG['Defaut']['IdVue'];
    
$TRANSAC['Vue']['Champ'] = array('ActVue' => $ActVue'IdVue' => $IdVue);
    
$EntAct Beurk_entiteAction('Vue'$ActVue$IdVue);
    
$_REQUEST = array();    // réinitialisation des autres champs (sécurité)
    
Beurk_alimenteChampsAction('Vue'$ActVue$EntAct$IdVue);        // pour init des champs de la clef

}

// ------  choix de la div dans laquelle l'affichage doit avoir lieu ------

$TRANSAC['Vue']['DivNormale'] = (is_array($TRANSAC['Vue']['Champ'])) ? Beurk_nomDivAccueil($TRANSAC['Vue']['Champ']) : $CONFIG['Defaut']['Div'];    // nom de la div contenant la vue, possiblement différente de la div où on va l'afficher

if ($TRANSAC['Ajax']['Est']) {
    if (isset(
$TRANSAC['Maj']) && $TRANSAC['Maj']['Erreur'] && isset($_REQUEST['DivVueErr']))
        
$TRANSAC['Vue']['Div'] = $_REQUEST['DivVueErr'];                // en cas d'erreur
    
elseif (isset($_REQUEST['DivVue']))
        
$TRANSAC['Vue']['Div'] = $_REQUEST['DivVue'];                    // cas normal
    
else
        
$TRANSAC['Vue']['Div'] = $TRANSAC['Vue']['DivNormale'];            // par défaut : la vue s'affiche dans la div du même nom
} else
    
$TRANSAC['Vue']['Div'] = '';                                        // la vue s'affiche dans une div fixée par le patron

// ------  gestion de la clef de la vue principale de la page --------------

if (is_array($TRANSAC['Vue']['Champ'])) {
    if (
$TRANSAC['Ajax']['Est']) {                                        // Ajax

        
if ($TRANSAC['Vue']['Div'] == $DIALOG['DivVuePage']) {            // si DivVue correspond à $DIALOG['DivVuePage'] (=> on charge la vue principale)
            
$DIALOG['ClefVuePage'] = $TRANSAC['Vue']['Champ'];            // sauvegarde de la clef d'affichage de la vue
            
$TRANSAC['Ajax']['UrlCanonique'] = Beurk_URL(array_merge($DIALOG['ClefVuePage'], array('DivVue' => $TRANSAC['Vue']['Div'])), ''true);
        }
    } else                                                                 
// pas Ajax
        
$DIALOG['ClefVuePage'] = $TRANSAC['Vue']['Champ'];                // sauvegarde de la clef d'affichage de la vue
}

// ---------------------------------------- controleur Vue ------------------------------------------

$TRANSAC['Page']['Titre'] = '';

if (
$EntAct) {

    
$tabEntite = &$CONFIG['Entite'][$EntAct];                

    
$TRANSAC['Vue']['Module'] = $tabEntite['Module'];    // à partir d'ici, $ActVue est sûr
    
$TRANSAC['Vue']['ClefPermission'] = $ActVue '.' $IdVue;            // clef de la permission  ...à déplacer ?
    
$TRANSAC['Vue']['Form'] = 'form' $ActVue $IdVue;                // nom du form traité par défaut

    
if (! isset($IdRef))                                        // si IdRef n'était pas en clef,
        
$IdRef Beurk_estElementDe($IdVue);                    // on va chercher le contenant dans les relations

    //vérification autorisation ('sommeControle' n'est pas utilisé sur les Vues)
    
$messageAuto Beurk_controleurAutorisation($tabEntite['Vue'][$ActVue]['Auto'],
                                                array(
'ActMaj' => $ActVue,
                                                    
'IdMaj' => $IdVue,
                                                    
'IdRef' => $IdRef,
                                                    
'IdEtatJetonClef' => (isset($TRANSAC['JetonVue']) ? $TRANSAC['JetonVue']['IdEtatClef'] : '')));
    if (
$messageAuto == '') {
        include(
INSTALL_PATH '/Module/' $TRANSAC['Vue']['Module'] . '/' .  $EntAct '/Vue/' $ActVue $EntAct .  '.php');    // appel de l'affichage
        
echo Beurk_flushDivsAccueil();                                                                                                    // sortie des divs d'accueil des actions (ramasse-miettes)

    
} else Beurk_messageEtape($messageAutotrue);

}  else 
Beurk_messageEtape('Action Vue invalide'true);

$TRANSAC['Page']['UrlCanonique'] = Beurk_URL($DIALOG['ClefVuePage'], $TRANSAC['Page']['Titre']);    //recalcul de l'URL canonique avec le titre de la page

if ($TRANSAC['Page']['Titre'] == '')
    
$TRANSAC['Page']['Titre'] = Beurk_Request2HTML("$ActVue $IdVue");    //titre de la page par défaut
if ($TRANSAC['Page']['Description'] == '')
    
$TRANSAC['Page']['Description'] = $TRANSAC['Page']['Titre'];            //description par défaut
if ($TRANSAC['Page']['Keywords'] == '')
    
$TRANSAC['Page']['Keywords'] = $TRANSAC['Page']['Titre'];                    //mot-clés par défaut


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