Une fonction générique pour obtenir les valeurs d'un block en fonction de ses saisies

master
nicod_ 4 days ago
parent 2ceb81cff6
commit 20e6f2a5c9

@ -83,19 +83,10 @@ function _block_charger_block($id_block) {
'spip_blocktypes bt join spip_blocks b using(id_blocktype)',
$where
)) {
$contexte = [
'id_block' => $id_block,
];
// transmettre les valeurs saisies dans le block au squelette
$saisies_blocktype = blocks_deserialize($infos['saisies']);
if ($valeurs_saisies = blocks_deserialize($infos['valeurs'])) {
include_spip('inc/saisies_lister');
$saisies_par_nom = saisies_lister_par_nom($saisies_blocktype);
foreach ($saisies_par_nom as $nom => $saisie) {
$contexte[$nom] = $valeurs_saisies[$nom] ?? null;
}
}
$contexte = array_merge(
['id_block' => $id_block],
block_get_valeurs($infos['saisies'], $infos['valeurs'])
);
$retour = recuperer_fond('inclure/block', $contexte);
}
@ -193,6 +184,27 @@ function generer_TITRE_BLOCK($id_block): string {
return $titre;
}
/**
* Retourner un tableau des valeurs saisies
*
* @param string $saisies (sérialisées)
* @param string $valeurs (sérialisées)
*
* @return array
*/
function block_get_valeurs(string $saisies, string $valeurs): array {
$retour = [];
$saisies_blocktype = blocks_deserialize($saisies);
if ($valeurs_saisies = blocks_deserialize($valeurs)) {
include_spip('inc/saisies_lister');
$saisies_par_nom = saisies_lister_par_nom($saisies_blocktype);
foreach ($saisies_par_nom as $nom => $saisie) {
$retour[$nom] = $valeurs_saisies[$nom] ?? null;
}
}
return $retour;
}
/**
* Chercher le squelette correspondant à un block par son identifiant
*

Loading…
Cancel
Save