Fichier FrameBeurk
Fmbk/Module/Beurk/Entite/Vue/relationsEntite.php
<?php //FrameBeurk V0.65 Copyright ToolOscope 2016. Licence CeCILL-C.
// affichage des relations du noeud demandé dans l'explorer
if (! isset($sufxCss))
$sufxCss = 1;
$vide = true;
// relations où le noeud est initial
$result = db_QUERY("SELECT IdRelation, count(*) FROM Beurk_Lien WHERE IdNoeud = '" . $IdVue . "' GROUP BY IdRelation");
while (list($IdRelation, $nbRelations) = db_FETCH_ROW($result)) {
echo '<div class="Relation_l', $sufxCss, '">
<span class="expFerme" data-basculeCharge="' . Beurk_jsURL(array('ActVue' => 'ascendants', 'IdVue' => $IdVue, 'IdRelation' => $IdRelation))
. '" data-ajax="' . ($cleAct = Beurk_JetonAleatoire(10, true)) . '" title="' . $IdVue . '-' . $IdRelation . '-*">
', (($relation = Beurk_Terminal($IdRelation, false)) ? $relation : ('Relation ' . $IdRelation)), ($nbRelations > 1) ?
(' (' . $nbRelations . ')') : '', '
</span>
', Beurk_divAccueil($cleAct), // sortie de la div d'accueil pour ascendants
'</div>
';
$sufxCss = 1 - $sufxCss;
$vide = false;
}
// relations où le noeud est final : on affiche la relation réciproque...
// ... mais les relations réciproques ne sont pas stockées en double dans la table des liens, et on ne sait pas si on a R1-estReciproqueDe-R2 ou R2-estReciproqueDe-R1,
// donc on va chercher les 2
$result = db_QUERY("SELECT L.IdRelation, R1.IdLie, R2.IdNoeud, count(*) FROM Beurk_Lien L
LEFT JOIN Beurk_Lien R1 ON R1.IdNoeud = L.IdRelation AND R1.IdRelation = '" . $CONFIG['Relation']['estReciproqueDe']['Id'] . "'
LEFT JOIN Beurk_Lien R2 ON R2.IdLie = L.IdRelation AND R2.IdRelation = '" . $CONFIG['Relation']['estReciproqueDe']['Id'] . "'
WHERE L.IdLie = '" . $IdVue . "' GROUP BY IdRelation, IdNoeud");
while (list($IdRelation, $IdReciproque1, $IdReciproque2, $nbRelations) = db_FETCH_ROW($result)) {
if ($IdReciproque1 != 0) {
if (! $relation = Beurk_terminal($IdReciproque1, false))
$relation = 'Relation ' . $IdReciproque1 . ('reciproque 1'); // la relation n'a pas pas de terminal
} elseif ($IdReciproque2 != 0) {
if (! $relation = Beurk_terminal($IdReciproque2, false))
$relation = 'Relation ' . $IdReciproque2 . ('reciproque 2'); // la relation n'a pas pas de terminal
} else
$relation = 'Relation ' . $IdRelation;
echo '<div class="Relation_l', $sufxCss, '">
<span class="expFerme" data-basculeCharge="' . Beurk_jsURL($cleAct = array('ActVue' => 'descendants', 'IdVue' => $IdVue, 'IdRelation' => $IdRelation))
. '" data-ajax="' . ($cleAct = Beurk_JetonAleatoire(10, true)) . '" title="*-' . $IdRelation . '-' . $IdVue . '">
', $relation, ($nbRelations > 1) ?
(' (' . $nbRelations . ')') : '', '
</span>
', Beurk_divAccueil($cleAct), // sortie de la div d'accueil pour descendants
'</div>
';
$sufxCss = 1 - $sufxCss;
$vide = false;
}
// si aucune relation trouvée ?!?!
if ($vide)
echo '<div class="erreur">', Beurk_traduit('Aucune relation', 'Beurk'), '</div>';