@ -1,4 +1,5 @@
#PHP
[(#INCLURE{fond=fabrique/entetes/php,env,
description=Gestion du formulaire de d'édition de #TYPE,
package=Formulaires})]
@ -65,13 +66,13 @@ Fonctions de chargement de l'objet
* @return array[]
* Saisies du formulaire
*/
function formulaires_editer_[(#TYPE)]_saisies_dist($#ID_OBJET = 'new',[ (#GET{id_parent_param})] $retour = '',[ (#GET{associer_param})] $lier_trad = 0, $config_fonc = '', $row = array() , $hidden = '') {
$saisies = array( [(#REM)
function formulaires_editer_[(#TYPE)]_saisies_dist($#ID_OBJET = 'new',[ (#GET{id_parent_param})] $retour = '',[ (#GET{associer_param})] $lier_trad = 0, $config_fonc = '', $row = \[\] , $hidden = '') {
$saisies = \[ [(#REM)
]< BOUCLE_saisies ( DATA ) { source tableau , # ENV { objet / champs } } { saisie ! = ' ' } > [(#REM)
]< BOUCLE_si_editable ( CONDITION ) { si # VALEUR | champ_option_presente { editable } | oui } >
array(
\[
'saisie' => '[(#VALEUR{saisie})]',
'options' => array(
'options' => \[
'nom' => '[(#CHAMP)]',
[(#VALEUR|champ_option_presente{obligatoire}|oui)'obligatoire' => 'oui',]
'label' => _T\('[(#TYPE)]:champ_[(#CHAMP)]_label'\),
@ -80,46 +81,46 @@ function formulaires_editer_[(#TYPE)]_saisies_dist($#ID_OBJET = 'new',[ (#GET{id
][(#SET{option,#VALEUR|trim|explode{=}})][(#REM)
]'[(#GET{option/0})]' => '[(#GET{option/1})]',
< / BOUCLE_options >
) ,[
\] ,[
(#REM) Une date à normaliser ?
][(#CHAMP|in_any{#GET{champs_date}}|oui)
'verifier' => array(
'verifier' => \[
'type' => 'date',
'options' => array(
'options' => \[
'normaliser' => 'datetime',
) ,
) ,]
) ,[
\] ,
\] ,]
\] ,[
(#REM) On teste donc s'il faut placer le formulaire de parentée ici
]< BOUCLE_si_parent ( CONDITION ) { si # GET { parent } } { si ( # GET { titre } | et { # ENV { objet / champ_titre } | = = { # CHAMP } } | ou { # GET { titre } | non | et { # _saisies:COMPTEUR_BOUCLE | = = { 1 } } } ) } > [(#REM)
]< BOUCLE_si_rubrique ( CONDITION ) { si # OBJET | champ_present { id_rubrique } } >
array(
\[
'saisie' => 'selecteur_rubrique',
'options' => array(
'options' => \[
'nom' => 'id_parent',
'label' => _T('entree_interieur_rubrique'),
'conteneur_class' => 'editer_parent',
) ,
) ,
\] ,
\] ,
< / BOUCLE_si_rubrique > [(#REM)
]< BOUCLE_si_liaison_directe ( CONDITION ) { si # OBJET | option_presente { liaison_directe } } >
array(
\[
'saisie' => '[(#ENV{parent/objet})]',
'options' => array(
'options' => \[
'nom' => '[(#ENV{parent/id_objet})]',
'obligatoire' => 'oui',
'label' => _T\('[(#ENV{parent/type})]:titre_[(#ENV{parent/type})]'\),
) ,
) ,
\] ,
\] ,
< / BOUCLE_si_liaison_directe > [(#REM)
]< / BOUCLE_si_parent > [(#REM)
]< / BOUCLE_si_editable >
< / BOUCLE_saisies >
) ;
\] ;
return $saisies;
}< / BOUCLE_si_saisies_php >
@ -146,8 +147,8 @@ function formulaires_editer_[(#TYPE)]_saisies_dist($#ID_OBJET = 'new',[ (#GET{id
* @return string
* Hash du formulaire
*/
function formulaires_editer_[(#TYPE)]_identifier_dist($#ID_OBJET = 'new',[ (#GET{id_parent_param})] $retour = '',[ (#GET{associer_param})] $lier_trad = 0, $config_fonc = '', $row = array() , $hidden = '') {
return serialize(array(intval($#ID_OBJET)[, (#GET{associer_val})]) );
function formulaires_editer_[(#TYPE)]_identifier_dist($#ID_OBJET = 'new',[ (#GET{id_parent_param})] $retour = '',[ (#GET{associer_param})] $lier_trad = 0, $config_fonc = '', $row = \[\] , $hidden = '') {
return json_encode(\[intval($#ID_OBJET)[, (#GET{associer_val})]\] );
}
/**
@ -177,13 +178,14 @@ function formulaires_editer_[(#TYPE)]_identifier_dist($#ID_OBJET = 'new',[ (#GET
* @return array
* Environnement du formulaire
*/
function formulaires_editer_[(#TYPE)]_charger_dist($#ID_OBJET = 'new',[ (#GET{id_parent_param})] $retour = '',[ (#GET{associer_param})] $lier_trad = 0, $config_fonc = '', $row = array() , $hidden = '') {
function formulaires_editer_[(#TYPE)]_charger_dist($#ID_OBJET = 'new',[ (#GET{id_parent_param})] $retour = '',[ (#GET{associer_param})] $lier_trad = 0, $config_fonc = '', $row = \[\] , $hidden = '') {
$valeurs = formulaires_editer_objet_charger('#TYPE', $#ID_OBJET, #GET{id_parent_val}, $lier_trad, $retour, $config_fonc, $row, $hidden);[(#OBJET|option_presente{liaison_directe}|oui)
if (![(#VAL{"$valeurs\['"}|concat{#GET{id_parent}}|concat{"'\]"})]) {
[(#VAL{"$valeurs\['"}|concat{#GET{id_parent}}|concat{"'\] = "}|concat{#GET{id_parent_val};})]
}]
< BOUCLE_si_saisies_php_charger ( CONDITION ) { si # ENV { paquet / saisies_mode , html } | = = { php } } >
$valeurs['saisies'] = call_user_func_array('formulaires_editer_[(#TYPE)]_saisies_dist', func_get_args());[(#REM)
$args = func_get_args();
$valeurs['saisies'] = formulaires_editer_[(#TYPE)]_saisies_dist(...$args);[(#REM)
]< / BOUCLE_si_saisies_php_charger >
return $valeurs;
}
@ -215,16 +217,16 @@ function formulaires_editer_[(#TYPE)]_charger_dist($#ID_OBJET = 'new',[ (#GET{id
* @return array
* Tableau des erreurs
*/
function formulaires_editer_[(#TYPE)]_verifier_dist($#ID_OBJET = 'new',[ (#GET{id_parent_param})] $retour = '',[ (#GET{associer_param})] $lier_trad = 0, $config_fonc = '', $row = array() , $hidden = '') {
function formulaires_editer_[(#TYPE)]_verifier_dist($#ID_OBJET = 'new',[ (#GET{id_parent_param})] $retour = '',[ (#GET{associer_param})] $lier_trad = 0, $config_fonc = '', $row = \[\] , $hidden = '') {
< BOUCLE_si_saisie_date_html ( CONDITION ) { si # ENV { objet / champs } | champs_saisie_presente { date } | et { # ENV { paquet / saisies_mode , html } | = = { html } } } >
$erreurs = array() ;
$erreurs = \[\] ;
// Normaliser les dates
$verifier = charger_fonction('verifier', 'inc');
foreach ([(#ENV{objet/champs}|champs_saisie_presente{date, champ}|ecrire_tableau)] AS $champ) {
$normaliser = null;
if ($erreur = $verifier(_request($champ), 'date', array('normaliser'=>'datetime') , $normaliser)) {
if ($erreur = $verifier(_request($champ), 'date', ['normaliser'=>'datetime'] , $normaliser)) {
$erreurs[$champ] = $erreur;
// si une valeur de normalisation a ete transmis, la prendre.
} elseif (!is_null($normaliser)) {
@ -241,7 +243,7 @@ function formulaires_editer_[(#TYPE)]_verifier_dist($#ID_OBJET = 'new',[ (#GET{i
< //B_si_saisie_date_html>
< BOUCLE_si_saisie_rubrique_php ( CONDITION ) { si # OBJET | champ_present { id_rubrique } | et { # ENV { paquet / saisies_mode , html } | = = { php } } } >
// Normaliser la rubrique si le champ n'est pas en erreur :
// le picker ajax du sélecteur générique retourne un tableau de la forme array('rubrique|1')
// le picker ajax du sélecteur générique retourne un tableau de la forme \['rubrique|1'\]
if (
empty($erreurs['id_parent'])
and $picker_id_parent = _request('id_parent')
@ -280,7 +282,7 @@ function formulaires_editer_[(#TYPE)]_verifier_dist($#ID_OBJET = 'new',[ (#GET{i
* @return array
* Retours des traitements
*/
function formulaires_editer_[(#TYPE)]_traiter_dist($#ID_OBJET = 'new',[ (#GET{id_parent_param})] $retour = '',[ (#GET{associer_param})] $lier_trad = 0, $config_fonc = '', $row = array() , $hidden = '') {
function formulaires_editer_[(#TYPE)]_traiter_dist($#ID_OBJET = 'new',[ (#GET{id_parent_param})] $retour = '',[ (#GET{associer_param})] $lier_trad = 0, $config_fonc = '', $row = \[\] , $hidden = '') {
$retours = formulaires_editer_objet_traiter('#TYPE', $#ID_OBJET, #GET{id_parent_val}, $lier_trad, $retour, $config_fonc, $row, $hidden);[
(#GET{associer}|oui)
// Un lien a prendre en compte ?
@ -290,7 +292,7 @@ function formulaires_editer_[(#TYPE)]_traiter_dist($#ID_OBJET = 'new',[ (#GET{id
if ($objet and $id_objet and autoriser('modifier', $objet, $id_objet)) {
include_spip('action/editer_liens');
objet_associer(array('#TYPE' => $#ID_OBJET), array($objet => $id_objet) );
objet_associer(\['#TYPE' => $#ID_OBJET\], \[$objet => $id_objet\] );
if (isset($retours\['redirect'\])) {
$retours\['redirect'\] = parametre_url($retours\['redirect'\], 'id_lien_ajoute', $#ID_OBJET, '&');
@ -299,7 +301,4 @@ function formulaires_editer_[(#TYPE)]_traiter_dist($#ID_OBJET = 'new',[ (#GET{id
}
]
return $retours;
}
}