Ignore:
Timestamp:
10/18/11 12:04:33 (8 years ago)
Author:
kent1
Message:

Ne pas afficher les groupes de mots seulement lorsque l'on a déjà l'id_article mais tout le temps (ex sur autre chose que des diogènes)

Location:
plugins_spip/diogene_complements/diogene_mots
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • plugins_spip/diogene_complements/diogene_mots/diogene_mots_pipelines.php

    r6077 r6082  
    44
    55/**
    6  * Insertion dans le formulaire DIOGENE_AJOUTER_MEDIA
     6 * Insertion dans le pipeline diogene_ajouter_saisies (Diogene)
    77 *
    88 * @param array $flux Le contexte du pipeline
     
    1212        $id_article = $flux['args']['contexte']['id_article'];
    1313        if (is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('mots',unserialize($flux['args']['champs_ajoutes']))) {
    14                 if ($id_article) {
    15                         if (intval($id_article)) {
    16                                 if (!is_array(unserialize($flux['args']['options_complements']['mots_obligatoires']))) {
    17                                         $mots_obligatoires = array();
    18                                 } else {
    19                                         $mots_obligatoires = unserialize($flux['args']['options_complements']['mots_obligatoires']);
    20                                 }
    21                                 if(!is_array(unserialize($flux['args']['options_complements']['mots_facultatifs']))) {
    22                                         $mots_facultatifs = array();
    23                                 } else {
    24                                         $mots_facultatifs = unserialize($flux['args']['options_complements']['mots_facultatifs']);
    25                                 }
    26                                 $valeurs_mots['id_groupes'] = $groupes_possibles = array_merge($mots_obligatoires,$mots_facultatifs);
    27                                 //On récupÚre les mots qui sont peut être associés
    28                                 foreach($groupes_possibles as $groupe){
    29                                         if (sql_getfetsel('unseul','spip_groupes_mots','id_groupe='.intval($groupe))== 'oui') {
    30                                                 $valeurs_mots['groupe_'.$groupe] = sql_fetsel('mot.id_mot','spip_mots as mot left join spip_mots_articles as mots_articles ON (mot.id_mot=mots_articles.id_mot)','mots_articles.id_article='.intval($id_article).' AND mot.id_groupe='.intval($groupe));
    31                                         } else {
    32                                                 $result = sql_select('mot.id_mot','spip_mots as mot left join spip_mots_articles as articles ON mot.id_mot=articles.id_mot','id_groupe='.intval($groupe).' AND id_article='.intval($id_article));
    33                                                 while ($row = sql_fetch($result)) {
    34                                                         $valeurs_mots['groupe_'.$groupe][] = $row['id_mot'];
    35                                                 }
    36                                         }       
    37                                 }
    38                                 if (is_array($valeurs_mots)) {
    39                                         $flux['args']['contexte'] = array_merge($flux['args']['contexte'],$valeurs_mots);
     14
     15                if (!is_array(unserialize($flux['args']['options_complements']['mots_obligatoires']))) {
     16                        $mots_obligatoires = array();
     17                } else {
     18                        $mots_obligatoires = unserialize($flux['args']['options_complements']['mots_obligatoires']);
     19                }
     20                if(!is_array(unserialize($flux['args']['options_complements']['mots_facultatifs']))) {
     21                        $mots_facultatifs = array();
     22                } else {
     23                        $mots_facultatifs = unserialize($flux['args']['options_complements']['mots_facultatifs']);
     24                }
     25                $valeurs_mots['id_groupes'] = $groupes_possibles = array_merge($mots_obligatoires,$mots_facultatifs);
     26               
     27                if (intval($id_article)) {                             
     28                        //On récupÚre les mots qui sont peut être associés
     29                        foreach($groupes_possibles as $groupe){
     30                                if (sql_getfetsel('unseul','spip_groupes_mots','id_groupe='.intval($groupe))== 'oui') {
     31                                        $valeurs_mots['groupe_'.$groupe] = sql_fetsel('mot.id_mot','spip_mots as mot left join spip_mots_articles as mots_articles ON (mot.id_mot=mots_articles.id_mot)','mots_articles.id_article='.intval($id_article).' AND mot.id_groupe='.intval($groupe));
     32                                }else {
     33                                        $result = sql_select('mot.id_mot','spip_mots as mot left join spip_mots_articles as articles ON mot.id_mot=articles.id_mot','id_groupe='.intval($groupe).' AND id_article='.intval($id_article));
     34                                        while ($row = sql_fetch($result)) {
     35                                                $valeurs_mots['groupe_'.$groupe][] = $row['id_mot'];
     36                                        }
    4037                                }
    4138                        }
    42                 $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_medias_mots',$flux['args']['contexte']);
    4339                }
     40               
     41                if (is_array($valeurs_mots)) {
     42                        $flux['args']['contexte'] = array_merge($flux['args']['contexte'],$valeurs_mots);
     43                }
     44               
     45                $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_medias_mots',$flux['args']['contexte']);
    4446        }
    4547        return $flux;
    4648}
    4749
     50/**
     51 * Insertion dans le pipeline diogene_verifier (Diogene)
     52 * Vérification des formulaires qui sont modifiés par Diogene
     53 *
     54 * @param array $flux Le contexte du pipeline
     55 * @return array $flux le contexte modifié passé aux suivants
     56 */
    4857function diogene_mots_diogene_verifier($flux){
    4958        $id_diogene = _request('id_diogene');
     
    5160                $diogene = sql_fetsel("*","spip_diogenes","id_diogene=$id_diogene");
    5261                $options_complements = unserialize($diogene['options_complements']);
    53                 $erreurs = &$flux['args']['erreurs'];
     62                $erreurs = $flux['args']['erreurs'];
    5463                // On teste si les groupes obligatoires sont ok
    5564                if (is_array($options_complements['mots_obligatoires'])) {
     
    6675
    6776/**
    68  * Fonction s'exécutant au traitement du formulaire DIOGENE_AJOUTER_MEDIA
    69  *
     77 * Insertion dans le pipeline diogene_traiter (Diogene)
     78 * Fonction s'exécutant au traitement des formulaires modifiés par Diogene
     79 *
    7080 * @param array $flux Le contexte du pipeline
    7181 * @return array $flux le contexte modifié passé aux suivants
     
    7585                $id_article = $flux['args']['id_objet'];
    7686
    77                 $diogene = sql_fetsel("*","spip_diogenes","id_diogene=$id_diogene");
     87                $diogene = sql_fetsel("*","spip_diogenes","id_diogene=".intval($id_diogene));
    7888                $options_complements = unserialize($diogene['options_complements']);
    7989
     
    8696                        : array();
    8797
    88                 //On traite les mots clés obligatoires ou pas
     98                /**
     99                 * On traite les mots clés obligatoires ou pas
     100                 */
    89101                include_spip('inc/editer_mots');
    90102                $groupes_possibles = array_merge($mots_obligatoires,$mots_facultatifs);
     
    92104                $mots_multiples = array();
    93105               
    94                 /*
     106                /**
    95107                 * On traite chaque groupe séparément
    96108                 * Si c'est une modification d'article il se peut qu'il faille supprimer les anciens mots
     
    98110                 */
    99111                foreach($groupes_possibles as $groupe){
    100                         /*
     112                        /**
    101113                         * Si le select est multiple
    102114                         */
     
    107119                                }
    108120                                foreach(_request('groupe_'.$groupe) as $cle => $mot){
    109                                         /*
     121                                        /**
    110122                                         * Si le mot est déja dans les mots, on le supprime juste
    111123                                         * de l'array des mots originaux
     
    119131                                }
    120132                        }
    121                         /*
     133                        /**
    122134                         * Si le select est simple
    123135                         */
     
    132144                                }
    133145                        }
    134                         /*
     146                        /**
    135147                         * S'il reste quelque chose dans les mots d'origine, on les délie de l'article
    136148                         */
     
    146158}
    147159
     160/**
     161 * Insertion dans le pipeline diogene_champs_sup (Diogene)
     162 * Fonction permettant de mettre des mots dans le formulaire d'un Diogene
     163 *
     164 * @param array $flux Le contexte du pipeline
     165 * @return array $flux le contexte modifié passé aux suivants
     166 */
    148167function diogene_mots_diogene_champs_sup($flux){
    149168        $flux['article']['mots'] = _T('diogene_mots:form_legend');
  • plugins_spip/diogene_complements/diogene_mots/plugin.xml

    r5761 r6082  
    77        </nom>
    88        <auteur>b_b</auteur>
    9         <version>0.1.1</version>
    10         <etat>dev</etat>
     9        <version>0.2.0</version>
     10        <etat>stable</etat>
    1111        <description>
    1212                <multi>
  • plugins_spip/diogene_complements/diogene_mots/prive/diogene_mots_champs_texte.html

    r4417 r6082  
    44        valeur=[(#ENV**{options_complements}|unserialize|table_valeur{mots_obligatoires}|unserialize)],
    55        defaut=#ARRAY{0,0},
     6        size=5,
    67        table_liaison=articles})]
    78[(#SAISIE{groupe_mots,mots_facultatifs,
     
    1011        valeur=[(#ENV**{options_complements}|unserialize|table_valeur{mots_facultatifs}|unserialize)],
    1112        defaut=#ARRAY{0,0},
     13        size=5,
    1214        table_liaison=articles})]
Note: See TracChangeset for help on using the changeset viewer.