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($messageAuto, true);
} 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