Ignore:
Timestamp:
03/23/10 18:37:11 (12 years ago)
Author:
kent1
Message:

Conformité à la possibilité de gérer plusieurs types d'objets

File:
1 edited

Legend:

Unmodified
Added
Removed
  • plugins_spip/diogene_complements/diogene_spipicious/diogene_spipicious_pipelines.php

    r3072 r3107  
    11<?php
    2         /**
    3         * Insertion de contenu avant le formulaire
    4         * Le js du sélecteur générique
    5         *
    6         * @param array $flux Le contexte du pipeline
    7         * @return array $flux le contexte modifié passé aux suivants
    8         */
     2/**
     3 * Insertion de contenu avant le formulaire
     4 * Le js du sélecteur générique
     5 *
     6 * @param array $flux Le contexte du pipeline
     7 * @return array $flux le contexte modifié passé aux suivants
     8 */
    99    function diogene_spipicious_diogene_avant_formulaire($flux){
    10         global $visiteur_session;
    11         if(is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('spipicious',unserialize($flux['args']['champs_ajoutes']))){
    12                         include_spip('inc/autoriser');
    13                 if(autoriser('tagger_spipicious','article',$id_objet,$visiteur_session,$opt)){
    14                         $flux['data'] .= recuperer_fond('prive/diogene_spipicious_avant_formulaire', $flux['args']);
    15                         }
    16         }
    17         return $flux;
     10    global $visiteur_session;
     11    if(is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('spipicious',unserialize($flux['args']['champs_ajoutes']))){
     12                include_spip('inc/autoriser');
     13        if(autoriser('tagger_spipicious','article',$id_objet,$visiteur_session,$opt)){
     14                $flux['data'] .= recuperer_fond('prive/diogene_spipicious_avant_formulaire', $flux['args']);
     15                }
     16    }
     17    return $flux;
    1818    }
    1919
    20         /**
    21         * Insertion dans le CFG de texte de la configuration pour spipicious
    22         *
    23         * @param array $flux Le contexte du pipeline
    24         * @return array $flux le contexte modifié passé aux suivants
    25         */
    26         function diogene_spipicious_diogene_texte_cfg_form($flux){
    27         $flux['data'] .= recuperer_fond('formulaires/config_diogene_texte_spipicious', $flux['args']);
    28         return $flux;
     20/**
     21 * Insertion dans le CFG de texte de la configuration pour spipicious
     22 *
     23 * @param array $flux Le contexte du pipeline
     24 * @return array $flux le contexte modifié passé aux suivants
     25 */
     26function diogene_spipicious_diogene_texte_cfg_form($flux){
     27    $flux['data'] .= recuperer_fond('formulaires/config_diogene_texte_spipicious', $flux['args']);
     28    return $flux;
    2929    }
    3030
    31         /**
    32          * Insertion dans le formulaire DIOGENE_AJOUTER_MEDIA
    33          *
    34          * @param array $flux Le contexte du pipeline
    35          * @return array $flux le contexte modifié passé aux suivants
    36          */
    37         function diogene_spipicious_diogene_ajouter_media($flux){
    38                 global $visiteur_session;
    39                 $id_article = $flux['args']['contexte']['id_article'];
    40                 if(is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('spipicious',unserialize($flux['args']['champs_ajoutes']))){
    41                         include_spip('inc/autoriser');
    42                 if(autoriser('tagger_spipicious','article',$id_article,$visiteur_session,$opt)){
    43                         if(intval($id_article)){
    44                                         $tags = sql_select("mots.id_mot, mots.titre","spip_spipicious as spipicious LEFT join spip_mots as mots USING(id_mot)","spipicious.id_auteur=".intval($visiteur_session['id_auteur'])." AND spipicious.id_objet=".intval($id_article)." AND spipicious.objet='article'");
    45                                         while($tag = sql_fetch($tags)){
    46                                                 $tag_uniques[$tag['id_mot']] = $tag['titre'];
    47                                         }
    48                                         if(is_array($tag_uniques)){
    49                                                 $flux['args']['contexte']['diogene_spipicious_removal_tags'] = $tag_uniques;
    50                                         }
     31/**
     32 * Insertion dans le formulaire DIOGENE_AJOUTER_MEDIA
     33 *
     34 * @param array $flux Le contexte du pipeline
     35 * @return array $flux le contexte modifié passé aux suivants
     36 */
     37function diogene_spipicious_diogene_ajouter_media($flux){
     38        global $visiteur_session;
     39        $id_article = $flux['args']['contexte']['id_article'];
     40        if(is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('spipicious',unserialize($flux['args']['champs_ajoutes']))){
     41                include_spip('inc/autoriser');
     42        if(autoriser('tagger_spipicious','article',$id_article,$visiteur_session,$opt)){
     43                if(intval($id_article)){
     44                                $tags = sql_select("mots.id_mot, mots.titre","spip_spipicious as spipicious LEFT join spip_mots as mots USING(id_mot)","spipicious.id_auteur=".intval($visiteur_session['id_auteur'])." AND spipicious.id_objet=".intval($id_article)." AND spipicious.objet='article'");
     45                                while($tag = sql_fetch($tags)){
     46                                        $tag_uniques[$tag['id_mot']] = $tag['titre'];
    5147                                }
    52                         $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_medias_spipicious',$flux['args']['contexte']);
     48                                if(is_array($tag_uniques)){
     49                                        $flux['args']['contexte']['diogene_spipicious_removal_tags'] = $tag_uniques;
     50                                }
     51                        }
     52                $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_medias_spipicious',$flux['args']['contexte']);
     53                }
     54        }
     55    return $flux;
     56    }
     57
     58/**
     59 * Fonction s'exécutant au traitement du formulaire DIOGENE_AJOUTER_MEDIA
     60 *
     61 * @param array $flux Le contexte du pipeline
     62 * @return array $flux le contexte modifié passé aux suivants
     63 */
     64function diogene_spipicious_diogene_ajout_media_post_traiter($flux){
     65        global $visiteur_session;
     66        if($flux['args']['action']=='modifier'){
     67
     68                $id_objet = $flux['args']['id_objet'];
     69                $type = $flux['args']['type'];
     70                $table  = $flux['args']['table'];
     71                $id_table_objet = id_table_objet($type);
     72
     73                include_spip('inc/autoriser');
     74        if(!autoriser('tagger_spipicious',$type,$id_objet,$visiteur_session,$opt)){
     75                return $flux;
     76                }
     77
     78                include_spip('inc/invalideur');
     79                $id_groupe = lire_config('spipicious/groupe_mot','1');
     80                if(_request('diogene_spipicious_tags')){
     81                        /**
     82                         * Insertion des tags
     83                         */
     84                        include_spip('action/spipicious_ajouter_tags');
     85                        $tableau_tags = explode(";",_request('diogene_spipicious_tags'));
     86                        $ajout = spipicious_ajouter_tags($tableau_tags,$visiteur_session['id_auteur'],$id_objet,$type,$id_table_objet,'spip_mots_'.$type.'s',$id_groupe,'oui');
     87
     88                        foreach($tableau_tags as $id_tag){
     89                                suivre_invalideur("id='id_mot/$id_mot'",true);
    5390                        }
    5491                }
    55         return $flux;
    56     }
    57 
    58         /**
    59          * Fonction s'exécutant au traitement du formulaire DIOGENE_AJOUTER_MEDIA
    60          *
    61          * @param array $flux Le contexte du pipeline
    62          * @return array $flux le contexte modifié passé aux suivants
    63          */
    64         function diogene_spipicious_diogene_ajout_media_post_traiter($flux){
    65                 global $visiteur_session;
    66                 if($flux['args']['action']=='modifier'){
    67 
    68                         $id_objet = $flux['args']['id_objet'];
    69                         $type = $flux['args']['type'];
    70                         $table  = $flux['args']['table'];
    71                         $id_table_objet = id_table_objet($type);
    72 
    73                         include_spip('inc/autoriser');
    74                 if(!autoriser('tagger_spipicious',$type,$id_objet,$visiteur_session,$opt)){
    75                         return $flux;
    76                         }
    77 
    78                         include_spip('inc/invalideur');
    79                         $id_groupe = lire_config('spipicious/groupe_mot','1');
    80                         if(_request('diogene_spipicious_tags')){
    81                                 /**
    82                                  * Insertion des tags
    83                                  */
    84                                 include_spip('action/spipicious_ajouter_tags');
    85                                 $tableau_tags = explode(";",_request('diogene_spipicious_tags'));
    86                                 $ajout = spipicious_ajouter_tags($tableau_tags,$visiteur_session['id_auteur'],$id_objet,$type,$id_table_objet,'spip_mots_'.$type.'s',$id_groupe,'oui');
    87 
    88                                 foreach($tableau_tags as $id_tag){
    89                                         suivre_invalideur("id='id_mot/$id_mot'",true);
    90                                 }
    91                         }
    92                         if(is_array(_request('diogene_spipicious_removal_tags'))){
    93                                 /**
    94                                  * Suppression des tags si demandée
    95                                  */
    96                                 include_spip('action/spipicious_supprimer_tags');
    97                                 $suppression = spipicious_supprimer_tags(_request('diogene_spipicious_removal_tags'),$visiteur_session['id_auteur'],$id_objet,$type,$id_table_objet,'spip_mots_'.$type.'s',$id_groupe);
    98                                 foreach(_request('diogene_spipicious_removal_tags') as $id_tag){
    99                                         suivre_invalideur("id='id_mot/$id_mot'",true);
    100                                 }
     92                if(is_array(_request('diogene_spipicious_removal_tags'))){
     93                        /**
     94                         * Suppression des tags si demandée
     95                         */
     96                        include_spip('action/spipicious_supprimer_tags');
     97                        $suppression = spipicious_supprimer_tags(_request('diogene_spipicious_removal_tags'),$visiteur_session['id_auteur'],$id_objet,$type,$id_table_objet,'spip_mots_'.$type.'s',$id_groupe);
     98                        foreach(_request('diogene_spipicious_removal_tags') as $id_tag){
     99                                suivre_invalideur("id='id_mot/$id_mot'",true);
    101100                        }
    102101                }
    103                 return $flux;
    104102        }
     103        return $flux;
     104}
    105105
    106         /**
    107          * Fonction s'exécutant au chargement du formulaire DIOGENE_AJOUTER_MEDIA
    108          *
    109          * @param array $flux Le contexte du pipeline
    110          * @return array $flux le contexte modifié passé aux suivants
    111          */
    112         function diogene_spipicious_diogene_ajout_media_post_charger($flux){
    113         }
    114 
    115         /**
    116          * Fonction qui ajoute des valeurs récupérées dans le formulaire d'ajout de medias
    117          * Ajoute des champs qui ne sont pas forcément dans la configuration texte
    118          * Ici on ajoute la prise en compte de spipicious_remove_tags qui n'est pas dans la conf
    119          */
    120         function diogene_spipicious_diogene_champs_texte($flux){
    121                 $flux['data'][] = 'diogene_spipicious_tags';
    122                 $flux['data'][] = 'diogene_spipicious_removal_tags';
    123                 return $flux;
    124         }
    125 
    126         function diogene_spipicious_diogene_champs_sup($flux){
    127                 $flux['spipicious'] = _T('diogene_spipicious:tags_spipicious');
    128                 return $flux;
    129         }
     106function diogene_spipicious_diogene_champs_sup($flux){
     107        $flux['article']['spipicious'] = _T('diogene_spipicious:tags_spipicious');
     108        return $flux;
     109}
    130110?>
Note: See TracChangeset for help on using the changeset viewer.