Changeset 79328 in spip-zone


Ignore:
Timestamp:
Dec 13, 2013, 4:38:42 PM (5 years ago)
Author:
marcimat@…
Message:

Si une saisie date est présente, on crée le code de normalisation adéquat…
il faudrait mettre la dépendance au plugin verifier (si c'est pas déjà fait).

Location:
_plugins_/fabrique
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/fabrique/branches/v1/fabrique/formulaires/editer_objet.php.html

    r79327 r79328  
    117117 */
    118118function formulaires_editer_[(#TYPE)]_verifier_dist($#ID_OBJET='new',[ (#GET{id_rubrique_param})] $retour='',[ (#GET{associer_param})] $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
    119 <B_saisies_type_date>
     119<BOUCLE_si_saisie_date(CONDITION){si #ENV{objet/champs}|champs_saisie_presente{date}}>
     120        $erreurs = formulaires_editer_objet_verifier('#TYPE',$#ID_OBJET[, (#GET{obligatoires}|ecrire_tableau_sinon_rien)]);
     121        $verifier = charger_fonction('verifier', 'inc');
    120122
    121 <BOUCLE_saisies_type_date(DATA){source tableau,#ENV{objet/champs}}{saisie = date}>
    122 </BOUCLE_saisies_type_date>
    123 </B_saisies_type_date>
     123        foreach ([(#ENV{objet/champs}|champs_saisie_presente{date, champ}|ecrire_tableau)] AS $champ)
     124        {
     125                $normaliser = null;
     126                if ($erreur = $verifier(_request($champ), 'date', array('normaliser'=>'datetime'), $normaliser)) {
     127                        $erreurs[$champ] = $erreur;
     128                // si une valeur de normalisation a ete transmis, la prendre.
     129                } elseif (!is_null($normaliser)) {
     130                        set_request($champ, $normaliser);
     131                // si pas de normalisation ET pas de date soumise, il ne faut pas tenter d'enregistrer ''
     132                } else {
     133                        set_request($champ, null);
     134                }
     135        }
     136        return $erreurs;
     137</BOUCLE_si_saisie_date>
    124138        return formulaires_editer_objet_verifier('#TYPE',$#ID_OBJET[, (#GET{obligatoires}|ecrire_tableau_sinon_rien)]);
    125 <//B_saisies_type_date>
     139<//B_si_saisie_date>
    126140}
    127141
  • _plugins_/fabrique/branches/v1/fabrique_fonctions.php

    r79327 r79328  
    371371
    372372
     373
    373374/**
    374375 * Indique si toutes les options sont présentes dans l'objet
     
    467468        }
    468469
     470        return false;
     471}
     472
     473/**
     474 * Indique si une saisie donnée est presente dans la définition d'un champ
     475 * de la fabrique
     476 *
     477 * @param array $champ
     478 *     Description d'un champ SQL d'un objet créé avec la fabrique
     479 * @param string $saisie
     480 *     Saisie testée
     481 * @return string
     482 *     Même retour que le filtre |oui :
     483 *     - Un espace si l'option est présente dans le champ de l'objet
     484 *     - Chaîne vide sinon
     485 */
     486function champ_saisie_presente($champ, $saisie) {
     487        if (isset($champ['saisie']) and $champ['saisie'] == $saisie) {
     488                return " "; // true
     489        }
    469490        return false;
    470491}
     
    599620}
    600621
     622/**
     623 * Retourne des champs en fonction d'une option trouvée
     624 *
     625 * @example
     626 *     #CHAMPS|champs_saisie_presente{date}
     627 *
     628 * @param array $champs
     629 *     Liste des descriptions de champs d'un objet créé avec la fabrique
     630 * @param string $saisie
     631 *     Type de saisie sélectionnée
     632 * @param string $type
     633 *     Information de retour désiré :
     634 *     - vide pour toute la description du champ
     635 *     - clé dans la description du champ pour obtenir uniquement ces descriptions
     636 * @return array
     637 *     - tableau de description des champs sélectionnés (si type non défini)
     638 *     - tableau les valeurs du type demandé dans les champs sélectionnés (si type défini)
     639**/
     640function champs_saisie_presente($champs, $saisie, $type='') {
     641        return _tableau_option_presente('champ_saisie_presente', $champs, $saisie, $type);
     642}
    601643
    602644/**
  • _plugins_/fabrique/branches/v1/paquet.xml

    r79326 r79328  
    22        prefix="fabrique"
    33        categorie="outil"
    4         version="1.19.0"
     4        version="1.20.0"
    55        etat="test"
    66        compatibilite="[3.0.0;3.0.*]"
  • _plugins_/fabrique/trunk/fabrique/formulaires/editer_objet.php.html

    r70030 r79328  
    117117 */
    118118function formulaires_editer_[(#TYPE)]_verifier_dist($#ID_OBJET='new',[ (#GET{id_rubrique_param})] $retour='',[ (#GET{associer_param})] $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     119<BOUCLE_si_saisie_date(CONDITION){si #ENV{objet/champs}|champs_saisie_presente{date}}>
     120        $erreurs = formulaires_editer_objet_verifier('#TYPE',$#ID_OBJET[, (#GET{obligatoires}|ecrire_tableau_sinon_rien)]);
     121        $verifier = charger_fonction('verifier', 'inc');
     122
     123        foreach ([(#ENV{objet/champs}|champs_saisie_presente{date, champ}|ecrire_tableau)] AS $champ)
     124        {
     125                $normaliser = null;
     126                if ($erreur = $verifier(_request($champ), 'date', array('normaliser'=>'datetime'), $normaliser)) {
     127                        $erreurs[$champ] = $erreur;
     128                // si une valeur de normalisation a ete transmis, la prendre.
     129                } elseif (!is_null($normaliser)) {
     130                        set_request($champ, $normaliser);
     131                // si pas de normalisation ET pas de date soumise, il ne faut pas tenter d'enregistrer ''
     132                } else {
     133                        set_request($champ, null);
     134                }
     135        }
     136        return $erreurs;
     137</BOUCLE_si_saisie_date>
    119138        return formulaires_editer_objet_verifier('#TYPE',$#ID_OBJET[, (#GET{obligatoires}|ecrire_tableau_sinon_rien)]);
     139<//B_si_saisie_date>
    120140}
    121141
  • _plugins_/fabrique/trunk/fabrique_fonctions.php

    r79327 r79328  
    472472}
    473473
     474
     475/**
     476 * Indique si une saisie donnée est presente dans la définition d'un champ
     477 * de la fabrique
     478 *
     479 * @param array $champ
     480 *     Description d'un champ SQL d'un objet créé avec la fabrique
     481 * @param string $saisie
     482 *     Saisie testée
     483 * @return string
     484 *     Même retour que le filtre |oui :
     485 *     - Un espace si l'option est présente dans le champ de l'objet
     486 *     - Chaîne vide sinon
     487 */
     488function champ_saisie_presente($champ, $saisie) {
     489        if (isset($champ['saisie']) and $champ['saisie'] == $saisie) {
     490                return " "; // true
     491        }
     492        return false;
     493}
     494
     495
    474496/**
    475497 * Retourne les objets possédant un certain champ SQL
     
    601623}
    602624
     625/**
     626 * Retourne des champs en fonction d'une option trouvée
     627 *
     628 * @example
     629 *     #CHAMPS|champs_saisie_presente{date}
     630 *
     631 * @param array $champs
     632 *     Liste des descriptions de champs d'un objet créé avec la fabrique
     633 * @param string $saisie
     634 *     Type de saisie sélectionnée
     635 * @param string $type
     636 *     Information de retour désiré :
     637 *     - vide pour toute la description du champ
     638 *     - clé dans la description du champ pour obtenir uniquement ces descriptions
     639 * @return array
     640 *     - tableau de description des champs sélectionnés (si type non défini)
     641 *     - tableau les valeurs du type demandé dans les champs sélectionnés (si type défini)
     642**/
     643function champs_saisie_presente($champs, $saisie, $type='') {
     644        return _tableau_option_presente('champ_saisie_presente', $champs, $saisie, $type);
     645}
    603646
    604647/**
  • _plugins_/fabrique/trunk/paquet.xml

    r79326 r79328  
    22        prefix="fabrique"
    33        categorie="outil"
    4         version="2.0.2"
     4        version="2.0.3"
    55        etat="dev"
    66        compatibilite="[3.1.0-dev;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.