FrameBeurk File
Fmbk/Module/Beurk/configBeurk_final.php
<?php //FrameBeurk V0.65 Copyright ToolOscope 2016. Licence CeCILL-C.
// Finalisation de la configuration du module Beurk (à éxécuter en fin de configuration)
$CONFIG['Controle']['Id'] = array();
// ------------------- chargement des super-terminaux en $CONFIG ---------------------------------
$result = db_QUERY("SELECT T1.IdTerminal, T1.Terminal FROM Beurk_Terminal T1
WHERE T1.Terminal IN ('Relation', 'Entite', 'Action', 'Module', 'Etat')");
while (list($IdTerminal, $Terminal) = db_FETCH_ROW($result)) {
$CONFIG['Controle']['Terminal'][$Terminal] = array('Id' => $IdTerminal, 'Type' => 'Super');
$CONFIG['Controle']['Id'][$IdTerminal] = array('Terminal' => $Terminal, 'Type' => 'Super');
$CONFIG['Super'][$Terminal]['Id'] = $IdTerminal;
}
// ----------------------- chargement des terminaux en $CONFIG ---------------------------------
// chargement des id des terminaux en $CONFIG (optimisation)
$result = db_QUERY("SELECT R.IdNoeud, T1.Terminal, T3.Terminal
FROM Beurk_Lien R
LEFT JOIN Beurk_Terminal T1 ON T1.IdTerminal = R.IdNoeud
LEFT JOIN Beurk_Terminal T2 ON T2.IdTerminal = R.IdRelation
LEFT JOIN Beurk_Terminal T3 ON T3.IdTerminal = R.IdLie
WHERE T2.Terminal = 'estDeType'
AND T3.Terminal IN ('Relation', 'Entite', 'Action', 'Module', 'Etat')
ORDER BY T1.Terminal");
while (list($IdNoeud, $TermNoeud, $TermLie) = db_FETCH_ROW($result)) {
$CONFIG['Controle']['Terminal'][$TermNoeud] = array('Id' => $IdNoeud, 'Type' => $TermLie);
$CONFIG['Controle']['Id'][$IdNoeud] = array('Terminal' => $TermNoeud, 'Type' => $TermLie);
//tableaux dédiés par SuperTerminal
switch ($TermLie) {
case 'Module':
$CONFIG['Module'][$TermNoeud]['Id'] = $IdNoeud; // déjà déclaré
break;
case 'Entite':
$CONFIG['Entite'][$TermNoeud]['Id'] = $IdNoeud;
break;
case 'Relation':
$CONFIG['Relation'][$TermNoeud] = array('Id' => $IdNoeud); // création du tableau
break;
case 'Action':
$CONFIG['Action'][$TermNoeud] = array('Id' => $IdNoeud);
break;
case 'Etat':
$CONFIG['Etat'][$TermNoeud] = array('Id' => $IdNoeud);
break;
}
}
db_FREE($result);
// ---------------------- chargement des parents des entités en $CONFIG (optimisation) -------------------------------------
$result = db_QUERY("SELECT R1.IdNoeud, R1.IdLie
FROM Beurk_Lien R1
LEFT JOIN Beurk_Lien R2 ON R1.IdNoeud = R2.IdNoeud
LEFT JOIN Beurk_Terminal T ON T.IdTerminal = R2.IdLie
WHERE R1.IdRelation = '" . $CONFIG['Relation']['estElementDe']['Id'] . "'
AND R2.IdRelation = '" . $CONFIG['Relation']['estDeType']['Id'] . "'
AND T.Terminal IN ('Relation', 'Entite', 'Action', 'Module', 'Etat')");
while (list($IdNoeud, $IdParent) = db_FETCH_ROW($result)) {
$CONFIG['Controle']['Id'][$IdNoeud]['estElementDe'] = $IdParent;
$CONFIG['Controle']['Terminal'][ $CONFIG['Controle']['Id'][$IdNoeud]['Terminal'] ]['estElementDe'] = $IdParent;
}
db_FREE($result);
// -------------------- initialisation des clefs des actions par défaut (s'appliquent aux Vues) ------------------------------
foreach($CONFIG['Action'] as $action => &$param) {
if ($action == 'cree') {
$param['ClefVue'] = array('IdRef'); // IdRef est l'entité à laquelle sera reliée l'entité crée par la relation 'estElementDe'
$param['ClefMaj'] = array('IdRef');
} elseif ($action == 'deplace') {
$param['ClefVue'] = array();
$param['ClefMaj'] = array('IdLie'); // IdLie est l'entité à laquelle sera reliée l'entité crée par la relation 'estElementDe'
} elseif ($action == 'associe') {
$param['ClefVue'] = array('IdNoeud'); // IdNoeud est l'entité qu'on va associer
$param['ClefMaj'] = array('IdNoeud', 'IdLie'); // IdLie est l'entité à laquelle sera reliée IdNoeud par la relation 'estAssocieA'
} else {
$param['ClefVue'] = array();
$param['ClefMaj'] = array();
}
}
unset($action, $param, $IdNoeud, $TermNoeud, $TermLie);