Passer le type de block parent au formulaire d'édition de block, qui le redescend sur la saisie qui permet d'ajouter un type de block

master
nicod_ 4 months ago
parent a5df9e5fe5
commit cd30d38916

@ -20,14 +20,15 @@ include_spip('inc/editer');
/**
* Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet edité
*
* @param int|string $id_block Identifiant du block. 'new' pour un nouveau block.
* @param string|null $objet Type d'objet à associer (article, rubrique,...)
* @param int|null $id_objet Id de l'objet à associer
* @param string|null $retour URL de redirection après le traitement
* @param string|null $include Indique si le formulaire est ouvert en inclusion
* @param int|string $id_block Identifiant du block. 'new' pour un nouveau block.
* @param string|null $objet Type d'objet à associer (article, rubrique,...)
* @param int|null $id_objet Id de l'objet à associer
* @param int|null $id_blocktype_parent Type du block parent
* @param string|null $retour URL de redirection après le traitement
* @param string|null $include Indique si le formulaire est ouvert en inclusion
* @return string Hash du formulaire
*/
function formulaires_editer_block_identifier_dist($id_block = 'new', $objet = null, $id_objet = null, $retour = null, $include = null) {
function formulaires_editer_block_identifier_dist($id_block = 'new', $objet = null, $id_objet = null, $id_blocktype_parent = null, $retour = null, $include = null) {
return serialize([intval($id_block), $objet, $id_objet]);
}
@ -36,15 +37,16 @@ function formulaires_editer_block_identifier_dist($id_block = 'new', $objet = nu
*
* Déclarer les champs postés et y intégrer les valeurs par défaut
*
* @param int|string $id_block Identifiant du block. 'new' pour un nouveau block.
* @param string|null $objet Type d'objet à associer (article, rubrique,...)
* @param int|null $id_objet Id de l'objet à associer
* @param string|null $retour URL de redirection après le traitement
* @param string|null $include Indique si le formulaire est ouvert en inclusion
* @param int|string $id_block Identifiant du block. 'new' pour un nouveau block.
* @param string|null $objet Type d'objet à associer (article, rubrique,...)
* @param int|null $id_objet Id de l'objet à associer
* @param int|null $id_blocktype_parent Type du block parent
* @param string|null $retour URL de redirection après le traitement
* @param string|null $include Indique si le formulaire est ouvert en inclusion
* @return array Environnement du formulaire
* @uses formulaires_editer_objet_charger()
*/
function formulaires_editer_block_charger_dist($id_block = 'new', $objet = null, $id_objet = null, $retour = null, $include = null) {
function formulaires_editer_block_charger_dist($id_block = 'new', $objet = null, $id_objet = null, $id_blocktype_parent = null, $retour = null, $include = null) {
if ((int)$id_block) {
$id_blocktype = (int)sql_getfetsel('id_blocktype', 'spip_blocks', 'id_block = ' . $id_block);
$infos = sql_fetsel('id_objet, objet', 'spip_blocks_liens', 'id_block = ' . $id_block);
@ -122,10 +124,11 @@ function formulaires_editer_block_charger_dist($id_block = 'new', $objet = null,
[
'saisie' => 'blocktypes',
'options' => [
'nom' => 'id_blocktype',
'obligatoire' => 'oui',
'label' => _T('block:champ_id_blocktype_label'),
'objet' => $objet,
'nom' => 'id_blocktype',
'obligatoire' => 'oui',
'label' => _T('block:champ_id_blocktype_label'),
'objet' => $objet,
'id_blocktype_parent' => $id_blocktype_parent,
],
],
];
@ -139,15 +142,16 @@ function formulaires_editer_block_charger_dist($id_block = 'new', $objet = null,
*
* Vérifier les champs postés et signaler d'éventuelles erreurs
*
* @param int|string $id_block Identifiant du block. 'new' pour un nouveau block.
* @param string|null $objet Type d'objet à associer (article, rubrique,...)
* @param int|null $id_objet Id de l'objet à associer
* @param string|null $retour URL de redirection après le traitement
* @param string|null $include Indique si le formulaire est ouvert en inclusion
* @param int|string $id_block Identifiant du block. 'new' pour un nouveau block.
* @param string|null $objet Type d'objet à associer (article, rubrique,...)
* @param int|null $id_objet Id de l'objet à associer
* @param int|null $id_blocktype_parent Type du block parent
* @param string|null $retour URL de redirection après le traitement
* @param string|null $include Indique si le formulaire est ouvert en inclusion
* @return array Tableau des erreurs
* @uses formulaires_editer_objet_verifier()
*/
function formulaires_editer_block_verifier_dist($id_block = 'new', $objet = null, $id_objet = null, $retour = null, $include = null) {
function formulaires_editer_block_verifier_dist($id_block = 'new', $objet = null, $id_objet = null, $id_blocktype_parent = null, $retour = null, $include = null) {
if ((int)$id_block) {
$id_blocktype = (int)sql_getfetsel('id_blocktype', 'spip_blocks', 'id_block = ' . $id_block);
} else {
@ -180,15 +184,16 @@ function formulaires_editer_block_verifier_dist($id_block = 'new', $objet = null
*
* Traiter les champs postés
*
* @param int|string $id_block Identifiant du block. 'new' pour un nouveau block.
* @param string|null $objet Type d'objet à associer (article, rubrique,...)
* @param int|null $id_objet Id de l'objet à associer
* @param string|null $retour URL de redirection après le traitement
* @param string|null $include Indique si le formulaire est ouvert en inclusion
* @param int|string $id_block Identifiant du block. 'new' pour un nouveau block.
* @param string|null $objet Type d'objet à associer (article, rubrique,...)
* @param int|null $id_objet Id de l'objet à associer
* @param int|null $id_blocktype_parent Type du block parent
* @param string|null $retour URL de redirection après le traitement
* @param string|null $include Indique si le formulaire est ouvert en inclusion
* @return array Retours des traitements
* @uses formulaires_editer_objet_traiter()
*/
function formulaires_editer_block_traiter_dist($id_block = 'new', $objet = null, $id_objet = null, $retour = null, $include = null) {
function formulaires_editer_block_traiter_dist($id_block = 'new', $objet = null, $id_objet = null, $id_blocktype_parent = null, $retour = null, $include = null) {
if ((int)$id_block) {
$id_blocktype = (int)sql_getfetsel('id_blocktype', 'spip_blocks', 'id_block = ' . $id_block);
$infos = sql_fetsel('id_objet, objet', 'spip_blocks_liens', 'id_block = ' . $id_block);

@ -24,7 +24,7 @@
#SET{redirect,#ENV{redirect,#ID_BLOCK|generer_url_entite{block}}}
<div class="ajax">
[(#FORMULAIRE_EDITER_BLOCK{#ENV{id_block,new}, #OBJET, #ID_OBJET, #GET{redirect}, #ENV{include}})]
[(#FORMULAIRE_EDITER_BLOCK{#ENV{id_block,new}, #OBJET, #ID_OBJET, '', #GET{redirect}, #ENV{include}})]
</div>
[(#ENV{include}|non)

Loading…
Cancel
Save