Fonctions génériques pour retrouver les blocktypes enfants/parents

master
nicod_ 4 months ago
parent a42e3e9c99
commit 2679a46b7c

@ -218,3 +218,22 @@ function blocks_trouver_squelette($identifiant, $force_public = false, $chemin_c
return $squelette;
}
function bloctypes_trouver_enfants($id_blocktype) {
return bloctypes_trouver_role($id_blocktype, 'enfant');
}
function bloctypes_trouver_parents($id_blocktype) {
return bloctypes_trouver_role($id_blocktype, 'parent');
}
function bloctypes_trouver_role($id_blocktype, $role) {
if (
$id_blocktype
&& $role
&& ($blocktypes_parents = objet_trouver_liens(['blocktype' => $id_blocktype], ['blocktype' => '*'], ['role' => $role]))
) {
return array_column($blocktypes_parents, 'id_objet');
}
return [];
}

@ -164,13 +164,11 @@ function formulaires_editer_blocktype_charger_dist($id_blocktype = 'new', $retou
$valeurs = formulaires_editer_objet_charger('blocktype', $id_blocktype, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
$valeurs['objets'] = blocks_deserialize($valeurs['objets']);
if ($blocktypes_enfants = objet_trouver_liens(['blocktype' => $id_blocktype], ['blocktype' => '*'], ['role' => 'enfant'])) {
$valeurs['blocktypes_enfants'] = array_column($blocktypes_enfants, 'id_objet');
if ($valeurs['blocktypes_enfants'] = bloctypes_trouver_enfants($id_blocktype)) {
$valeurs['conteneur_enfants'] = 'on';
}
if ($blocktypes_parents = objet_trouver_liens(['blocktype' => $id_blocktype], ['blocktype' => '*'], ['role' => 'parent'])) {
$valeurs['blocktypes_parents'] = array_column($blocktypes_parents, 'id_objet');
if ($valeurs['blocktypes_parents'] = bloctypes_trouver_parents($id_blocktype)) {
$valeurs['conteneur_parents'] = 'on';
}

@ -11,8 +11,8 @@
<B>
<p><strong class="label"><:blocktype:champ_conteneur_enfants_label:/> : </strong></p>
<ul class="spip">
<BOUCLE(spip_blocktypes_liens){id_blocktype}{role=enfant}>
<li>#INFO_TITRE{blocktype,#ID_OBJET}</li>
<BOUCLE(DATA) {source tableau, #ID_BLOCKTYPE|bloctypes_trouver_enfants}>
<li>#INFO_TITRE{blocktype,#VALEUR}</li>
</BOUCLE>
</ul>
</B>
@ -20,8 +20,8 @@
<B>
<p><strong class="label"><:blocktype:champ_conteneur_parents_label:/> : </strong></p>
<ul class="spip">
<BOUCLE(spip_blocktypes_liens){id_blocktype}{role=parent}>
<li>#INFO_TITRE{blocktype,#ID_OBJET}</li>
<BOUCLE(DATA) {source tableau, #ID_BLOCKTYPE|bloctypes_trouver_parents}>
<li>#INFO_TITRE{blocktype,#VALEUR}</li>
</BOUCLE>
</ul>
</B>

Loading…
Cancel
Save