Changeset 90568 in spip-zone


Ignore:
Timestamp:
Jun 28, 2015, 4:28:37 PM (6 years ago)
Author:
cedric@…
Message:

Du bon vieux HTML, pour faciliter les evolutions (commits a suivre)
+ PHPDoc a jour de la signature des fonctions

Location:
_plugins_/produits/trunk/formulaires
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/produits/trunk/formulaires/editer_produit.html

    r80933 r90568  
     1<div class="ajax formulaire_spip formulaire_#FORM formulaire_#FORM-#ENV{id,nouveau}">
     2        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
     3        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV**{message_erreur})</p>]
     4        [(#ENV{editable})
     5        <form method='post' action='#ENV{action}'><div>
     6                [(#REM) déclarer les hidden qui déclencheront le service du formulaire
     7                paramêtre : url d'action ]
     8                #ACTION_FORMULAIRE{#ENV{action}}
     9                #SET{fl,produits}
     10                <ul class="editer-groupe">
     11                        #SET{name,titre}#SET{obli,'obligatoire'}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     12                        <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     13                                <label for="#GET{name}">[(#GET{fl}|concat{':produit_champ_',#GET{name},'_label'}|_T)]</label>[
     14                                <span class='erreur_message'>(#GET{erreurs})</span>
     15                                ]<input type="text multilang" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}"
     16                                        placeholder="<:info_sans_titre|attribut_html:>"
     17                                        [(#HTML5|et{#GET{obli}})required='required']/>
     18                        </li>
     19                        #SET{name,reference}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     20                        <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     21                                <label for="#GET{name}">[(#GET{fl}|concat{':produit_champ_',#GET{name},'_label'}|_T)]</label>[
     22                                <span class='erreur_message'>(#GET{erreurs})</span>
     23                                ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
     24                        </li>
     25                        [(#SAISIE{selecteur_rubrique,parent,
     26                                        multiple=non,
     27                                        label=<:produits:produit_champ_rubrique_label:>})]
     28                        #SET{name,#CONFIG{produits/editer_ttc}|?{prix_ttc,prix_ht}}#SET{obli,'obligatoire'}#SET{defaut,'0'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     29                        <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     30                                <label for="#GET{name}">[(#GET{fl}|concat{':produit_champ_',#GET{name},'_label'}|_T)]</label>[
     31                                <span class='erreur_message'>(#GET{erreurs})</span>
     32                                ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
     33                        </li>
     34                        #SET{name,taxe}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     35                        <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     36                                <label for="#GET{name}">[(#GET{fl}|concat{':produit_champ_',#GET{name},'_label'}|_T)]</label>[
     37                                <span class='erreur_message'>(#GET{erreurs})</span>
     38                                ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']
     39                                placeholder="#CONFIG{produits/taxe,0}"
     40                                />
     41                                <p class="explication"><:produits:produit_champ_taxe_explication{taxe=#CONFIG{produits/taxe,0}}:></p>
     42                        </li>
     43                        #SET{name,descriptif}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     44                        <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     45                                <label for="#GET{name}">[(#GET{fl}|concat{':produit_champ_',#GET{name},'_label'}|_T)]</label>[
     46                                <span class='erreur_message'>(#GET{erreurs})</span>
     47                                ]<textarea name="#GET{name}" class="textarea multilang" id="#GET{name}" rows="3">
     48#ENV*{#GET{name},#GET{defaut}}</textarea>
     49                        </li>
     50                        #SET{name,texte}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     51                        <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     52                                <label for="#GET{name}">[(#GET{fl}|concat{':produit_champ_',#GET{name},'_label'}|_T)]</label>[
     53                                <span class='erreur_message'>(#GET{erreurs})</span>
     54                                ]<textarea name="#GET{name}" class="textarea multilang" id="#GET{name}">
     55#ENV*{#GET{name},#GET{defaut}}</textarea>
     56                        </li>
     57
     58                </ul>
     59          [(#REM) ajouter les saisies supplémentaires : extra et autre, à cet endroit ]
     60          <!--extra-->
     61          <p class='boutons'><span class='image_loading'>&nbsp;</span>
     62                        <input type='submit' class='submit' value='<:bouton_enregistrer|attribut_html:>' /></p>
     63        </div></form>
     64        ]
     65</div>
  • _plugins_/produits/trunk/formulaires/editer_produit.php

    r87487 r90568  
    1616include_spip('inc/editer');
    1717
    18 /**
    19  * Saisies du formulaire
    20  *
    21  * @param int|string $id_produit
    22  *     Identifiant du produit. 'new' pour un nouveau produit.
    23  * @param int $id_rubrique
    24  *     Identifiant de la rubrique parente (si connue)
    25  * @param string $retour
    26  *     URL de redirection après le traitement
    27  * @return array
    28  *     Saisies du formulaire
    29  */
    30 function formulaires_editer_produit_saisies($id_produit='new', $id_rubrique=0, $retour=''){
    31         $saisies = array(
    32                 array(
    33                         'saisie' => 'input',
    34                         'options' => array(
    35                                 'nom' => 'titre',
    36                                 'obligatoire' => 'oui',
    37                                 'label' => _T('produits:produit_champ_titre_label'),
    38                                 'defaut' => _T('info_sans_titre'),
    39                                 'class' => 'multilang',
    40                         )
    41                 ),
    42                 array(
    43                         'saisie' => 'input',
    44                         'options' => array(
    45                                 'nom' => 'reference',
    46                                 'label' => _T('produits:produit_champ_reference_label'),
    47                         )
    48                 ),
    49                 array(
    50                         'saisie' => 'selecteur_rubrique',
    51                         'options' => array(
    52                                 'nom' => 'parent',
    53                                 'obligatoire' => 'oui',
    54                                 'label' => _T('produits:produit_champ_rubrique_label'),
    55                                 'defaut' => 'rubrique|'.$id_rubrique
    56                         )
    57                 ),
    58                 array(
    59                         'saisie' => 'input',
    60                         'options' => array(
    61                                 'nom' => 'prix_ht',
    62                                 'obligatoire' => 'oui',
    63                                 'label' => _T('produits:produit_champ_prix_ht_label'),
    64                                 'defaut' => 0,
    65                         ),
    66                         'verifier' => array(
    67                                 'type' => 'decimal'
    68                         )
    69                 ),
    70                 array(
    71                         'saisie' => 'input',
    72                         'options' => array(
    73                                 'nom' => 'taxe',
    74                                 'label' => _T('produits:produit_champ_taxe_label'),
    75                                 'explication' => _T('produits:produit_champ_taxe_explication', array('taxe'=>lire_config('produits/taxe', 0))),
    76                                 'defaut' => '' // = null
    77                         ),
    78                         'verifier' => array(
    79                                 'type' => 'decimal',
    80                                 'options' => array(
    81                                         'min' => 0,
    82                                         'max' => 1
    83                                 )
    84                         )
    85                 ),
    86                 array(
    87                         'saisie' => 'textarea',
    88                         'options' => array(
    89                                 'nom' => 'descriptif',
    90                                 'rows' => '3',
    91                                 'label' => _T('produits:produit_champ_descriptif_label'),
    92                                 'class' => 'multilang',
    93                         )
    94                 ),
    95                 array(
    96                         'saisie' => 'textarea',
    97                         'options' => array(
    98                                 'nom' => 'texte',
    99                                 'label' => _T('produits:produit_champ_texte_label'),
    100                                 'class' => 'multilang',
    101                         )
    102                 ),
    103         );
    104 
    105         if (lire_config('produits/editer_ttc')) {
    106                 $saisie_prix_ttc = array(
    107                         'saisie' => 'input',
    108                         'options' => array(
    109                                 'nom' => 'prix_ttc',
    110                                 'obligatoire' => 'oui',
    111                                 'label' => _T('produits:produit_champ_prix_ttc_label'),
    112                                 'defaut' => 0,
    113                         ),
    114                         'verifier' => array(
    115                                 'type' => 'decimal'
    116                         )
    117                 );
    118                 $saisies = saisies_inserer($saisies,$saisie_prix_ttc,'prix_ht');
    119                 $saisies = saisies_modifier($saisies,'prix_ht',array('options' => array('nouveau_type_saisie' => 'hidden')));
    120         }
    121 
    122         return $saisies;
    123 }
    12418
    12519/**
     
    13226 * @param string $retour
    13327 *     URL de redirection après le traitement
    134  * @param int $lier_trad
    135  *     Identifiant éventuel d'un produit source d'une traduction
    136  * @param string $config_fonc
    137  *     Nom de la fonction ajoutant des configurations particulières au formulaire
    138  * @param array $row
    139  *     Valeurs de la ligne SQL du produit, si connu
    140  * @param string $hidden
    141  *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
    14228 * @return string
    14329 *     Hash du formulaire
    14430 */
    145 function formulaires_editer_produit_identifier_dist($id_produit='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     31function formulaires_editer_produit_identifier_dist($id_produit='new', $id_rubrique=0, $retour=''){
    14632        return serialize(array(intval($id_produit)));
    14733}
     
    16046 * @param string $retour
    16147 *     URL de redirection après le traitement
    162  * @param int $lier_trad
    163  *     Identifiant éventuel d'un produit source d'une traduction
    164  * @param string $config_fonc
    165  *     Nom de la fonction ajoutant des configurations particulières au formulaire
    166  * @param array $row
    167  *     Valeurs de la ligne SQL du produit, si connu
    168  * @param string $hidden
    169  *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
    17048 * @return array
    17149 *     Environnement du formulaire
     
    17856                $id_rubrique = $config['limiter_ident_secteur'][0] ;
    17957        }
    180         $contexte = formulaires_editer_objet_charger('produit',$id_produit,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden);
     58        $contexte = formulaires_editer_objet_charger('produit',$id_produit,$id_rubrique,$lier_trad=0,$retour);
    18159
    18260        //Si on a déjà le $id_produit il faut afficher sa rubrique!
     
    20987 * @param string $retour
    21088 *     URL de redirection après le traitement
    211  * @param int $lier_trad
    212  *     Identifiant éventuel d'un produit source d'une traduction
    213  * @param string $config_fonc
    214  *     Nom de la fonction ajoutant des configurations particulières au formulaire
    215  * @param array $row
    216  *     Valeurs de la ligne SQL du produit, si connu
    217  * @param string $hidden
    218  *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
    21989 * @return array
    22090 *     Tableau des erreurs
     
    22292function formulaires_editer_produit_verifier($id_produit='new', $id_rubrique=0, $retour=''){
    22393        $erreurs = array();
     94        $config = lire_config('produits');
     95
    22496        $erreurs = formulaires_editer_objet_verifier('produit', $id_produit);
    225         $config = lire_config('produits');
     97
     98        $verifier = charger_fonction('verifier','inc');
     99        $champ_prix = 'prix_ht';
     100        if (isset($config['editer_ttc']) AND $config['editer_ttc']){
     101                $champ_prix = 'prix_ttc';
     102        }
     103
     104        if ($err=$verifier(_request($champ_prix),'decimal')){
     105                $erreurs[$champ_prix] = $err;
     106        }
     107
     108        if ($err=$verifier(_request('taxe'),'decimal',array('min' => 0,'max' => 1))){
     109                $erreurs['taxe'] = $err;
     110        }
     111
    226112        // Vérifier que la rubrique choisie se trouve dans les secteurs autorisés
    227         if($config['limiter_ajout']) {
     113        if(isset($config['limiter_ajout']) AND $config['limiter_ajout']) {
    228114                $id_secteur = sql_getfetsel("id_secteur", "spip_rubriques", "id_rubrique=" . intval(produits_id_parent()));
    229115                if(is_array($config['limiter_ident_secteur']) && !in_array($id_secteur,$config['limiter_ident_secteur'])) {
     
    252138 * @param string $retour
    253139 *     URL de redirection après le traitement
    254  * @param int $lier_trad
    255  *     Identifiant éventuel d'un produit source d'une traduction
    256  * @param string $config_fonc
    257  *     Nom de la fonction ajoutant des configurations particulières au formulaire
    258  * @param array $row
    259  *     Valeurs de la ligne SQL du produit, si connu
    260  * @param string $hidden
    261  *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
    262140 * @return array
    263141 *     Retours des traitements
     
    269147                set_request('prix_ht',$prix_ht);
    270148        }
    271         $retours = formulaires_editer_objet_traiter('produit',$id_produit,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden);
     149        $retours = formulaires_editer_objet_traiter('produit',$id_produit,$id_rubrique,$lier_trad=0,$retour);
    272150        return $retours;
    273151}
Note: See TracChangeset for help on using the changeset viewer.