Changeset 45478 in spip-zone


Ignore:
Timestamp:
Mar 16, 2011, 8:58:02 PM (9 years ago)
Author:
rastapopoulos@…
Message:

Amélioration de la dernière évolution Saisies-CVT : l'API s'enrichit d'une fonction générique pour aller chercher les saisies d'un formulaire CVT.

/*

  • Cherche la description des saisies d'un formulaire CVT dont on donne le nom *
  • @param string $form Nom du formulaire dont on cherche les saisies
  • @return array Retourne les saisies du formulaire sinon false */

function saisies_chercher_formulaire($form, $args){

Au passage on passe alors le tableau de saisies dans un pipeline ayant la même structure que ceux de CVT : "formulaire_saisies". Du coup n'importe quel CVT déclaré avec Saisies peut être modifié à la volée par un autre plugin, soit pour ajouter des champs, soit pour modifier un champ déjà existant !

Location:
_plugins_/saisies
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/saisies/inc/saisies.php

    r42905 r45478  
    128128                $champs[$champ] = '';
    129129        return $champs;
     130}
     131
     132/*
     133 * Cherche la description des saisies d'un formulaire CVT dont on donne le nom
     134 *
     135 * @param string $form Nom du formulaire dont on cherche les saisies
     136 * @return array Retourne les saisies du formulaire sinon false
     137 */
     138function saisies_chercher_formulaire($form, $args){
     139        if ($fonction_saisies = charger_fonction('saisies', 'formulaires/'.$form, true)
     140                and $saisies = call_user_func_array($fonction_saisies, $args)
     141                and is_array($saisies)
     142        ){
     143                // On passe les saisies dans un pipeline normé comme pour CVT
     144                $saisies = pipeline(
     145                        'formulaire_saisies',
     146                        array(
     147                                'args' => array('form' => $form, 'args' => $args),
     148                                'data' => $saisies
     149                        )
     150                );
     151                return $saisies;
     152        }
     153        else
     154                return false;
    130155}
    131156
  • _plugins_/saisies/plugin.xml

    r45189 r45478  
    33    <auteur>Matthieu Marcillaud - RastaPopoulos - Joseph</auteur>
    44    <licence>&#169; 2009 GNU/GPL</licence>
    5     <version>1.9.0</version>
     5    <version>1.9.1</version>
    66    <etat>test</etat>
    77    <categorie>outil</categorie>
     
    4646        </pipeline>
    4747        <pipeline>
     48                <nom>formulaire_saisies</nom>
     49                <inclure>saisies_pipelines.php</inclure>
     50        </pipeline>
     51        <pipeline>
    4852                <nom>formulaire_charger</nom>
    4953                <inclure>saisies_pipelines.php</inclure>
  • _plugins_/saisies/saisies_pipelines.php

    r45189 r45478  
    3131}
    3232
    33 // Déclaration du pipeline
     33// Déclaration des pipelines
    3434function saisies_saisies_autonomes($flux) { return $flux; }
     35function saisies_formulaire_saisies($flux) { return $flux; }
    3536
    3637// Déclarer automatiquement les champs d'un CVT si on les trouve dans un tableau de saisies et s'ils ne sont pas déjà déclarés
    3738function saisies_formulaire_charger($flux){
    3839        // Il faut que la fonction existe et qu'elle retourne bien un tableau
    39         if ($fonction_saisies = charger_fonction('saisies', 'formulaires/'.$flux['args']['form'], true)
    40                 and $saisies = call_user_func_array($fonction_saisies, $flux['args']['args'])
    41                 and is_array($saisies)
    42         ){
    43                 include_spip('inc/saisies');
    44                
     40        if (include_spip('inc/saisies') and $saisies = saisies_chercher_formulaire($flux['args']['form'], $flux['args']['args'])){
    4541                // On ajoute au contexte les champs à déclarer
    46                 $contexte = saisies_charger_champs($saisies);
     42                $contexte = saisies_lister_valeurs_defaut($saisies);
    4743                $flux['data'] = array_merge($contexte, $flux['data']);
    4844               
     
    7268function saisies_formulaire_verifier($flux){
    7369        // Il faut que la fonction existe et qu'elle retourne bien un tableau
    74         if ($fonction_saisies = charger_fonction('saisies', 'formulaires/'.$flux['args']['form'], true)
    75                 and $saisies = call_user_func_array($fonction_saisies, $flux['args']['args'])
    76                 and is_array($saisies)
    77         ){
    78                 include_spip('inc/saisies');
    79                
     70        if (include_spip('inc/saisies') and $saisies = saisies_chercher_formulaire($flux['args']['form'], $flux['args']['args'])){
    8071                // On ajoute au contexte les champs à déclarer
    8172                $erreurs = saisies_verifier($saisies);
Note: See TracChangeset for help on using the changeset viewer.