Changeset 69288 in spip-zone


Ignore:
Timestamp:
Jan 24, 2013, 9:52:37 AM (7 years ago)
Author:
rastapopoulos@…
Message:

On teste mieux la config activée ici (c'est pas forcément "modifier" suivant l'action).

Et on n'appelle pas la journalisation si on a pas toutes les infos de l'objet éditorial en question.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/bigbrother/trunk/bigbrother_pipelines.php

    r69246 r69288  
    4545 */
    4646function bigbrother_post_edition($flux){
    47         if(lire_config('bigbrother/modifier')){
    48                 $journal = charger_fonction('journal','inc');
     47        $infos = array();
     48       
     49        // Dans tous les cas, on cherche déjà quelle est *vraiment* l'action qui vient d'être faite
     50        if($flux['args']['action'] == 'instituer'){
     51                $faire = 'instituer';
     52                $texte = 'bigbrother:action_instituer_objet';
     53        }else if(!isset($flux['args']['action']) && isset($flux['args']['operation'])){
     54                if($flux['args']['operation'] == 'ajouter_document'){
     55                        $faire = 'inserer';
     56                        $texte = "bigbrother:action_".$flux['args']['operation'];
     57                }else{
     58                        $faire = $flux['args']['operation'];
     59                        $texte = "bigbrother:action_$faire";
     60                }
     61        }
     62        else{
     63                $faire = 'modifier';
     64                $texte = 'bigbrother:action_modifier_objet';
     65                /**
     66                 * Les actions de modifications passent un array à $flux['data'] des champs modifiés
     67                 * On le serialize pour son insertion future en base
     68                 */
     69                if(is_array($flux['data'])){
     70                        $infos['modifs'] = $flux['data'];
     71                }
     72        }
     73       
     74        // Suivant l'action, on ne teste pas la même configuration
     75        $config_a_tester = $faire;
     76        if (!in_array($config_a_tester, array('inserer', 'modifier', 'instituer'))){
     77                $config_a_tester = 'modifier';
     78        }
     79        if(lire_config("bigbrother/$config_a_tester")){
     80                // On cherche qui et sur quoi porte l'action
    4981                $qui = $GLOBALS['visiteur_session']['nom'] ? $GLOBALS['visiteur_session']['nom'] : $GLOBALS['ip'];
    5082                $qui_ou_ip = $GLOBALS['visiteur_session']['id_auteur'] ? $GLOBALS['visiteur_session']['id_auteur'] : $GLOBALS['ip'];
     
    5587                        $quoi = objet_type($table);
    5688                }
    57 
    58                 if($flux['args']['action'] == 'instituer'){
    59                         $faire = 'instituer';
    60                         $texte = 'bigbrother:action_instituer_objet';
    61                 }else if(!isset($flux['args']['action']) && isset($flux['args']['operation'])){
    62                         if($flux['args']['operation'] == 'ajouter_document'){
    63                                 $faire = 'inserer';
    64                                 $texte = "bigbrother:action_".$flux['args']['operation'];
    65                         }else{
    66                                 $faire = $flux['args']['operation'];
    67                                 $texte = "bigbrother:action_$faire";
    68                         }
     89                $id_objet = $flux['args']['id_objet'];
     90               
     91                // On ne continue que si on a toutes les infos
     92                if ($faire and $qui_ou_ip and $quoi and $id_objet){
     93                        $journal = charger_fonction('journal','inc');
     94                        $texte_infos = array('qui'=>$qui,'type'=> $quoi,'id'=>$id_objet);
     95                        $id_journal = $journal(
     96                                _T($texte,$texte_infos),
     97                                array('qui' => $qui_ou_ip,'faire' => $faire,'quoi' => $quoi,'id' => $id_objet,'infos' => $infos)
     98                        );
    6999                }
    70                 else{
    71                         $faire = 'modifier';
    72                         $texte = 'bigbrother:action_modifier_objet';
    73                         /**
    74                          * Les actions de modifications passent un array à $flux['data'] des champs modifiés
    75                          * On le serialize pour son insertion future en base
    76                          */
    77                         if(is_array($flux['data'])){
    78                                 $infos['modifs'] = serialize($flux['data']);
    79                         }
    80                 }
    81 
    82 
    83                 $texte_infos = array('qui'=>$qui,'type'=> $quoi,'id'=>$flux['args']['id_objet']);
    84 
    85                 $journal(
    86                         _T($texte,$texte_infos),
    87                         array('qui' => $qui_ou_ip,'faire' => $faire,'quoi' => $quoi,'id' => $flux['args']['id_objet'],'infos' => $infos)
    88                 );
    89100        }
    90101        return $flux;
     
    98109function bigbrother_post_insertion($flux){
    99110        if(lire_config('bigbrother/inserer')){
    100                 $journal = charger_fonction('journal','inc');
    101111                $qui = $GLOBALS['visiteur_session']['nom'] ? $GLOBALS['visiteur_session']['nom'] : $GLOBALS['ip'];
    102112                $qui_ou_ip = $GLOBALS['visiteur_session']['id_auteur'] ? $GLOBALS['visiteur_session']['id_auteur'] : $GLOBALS['ip'];
     
    104114                $table = $flux['args']['table'];
    105115                $quoi = objet_type($table);
     116                $id_objet = $flux['args']['id_objet'];
    106117                $faire = 'inserer';
    107118                $texte = 'bigbrother:action_inserer_objet';
    108 
    109                 $texte_infos = array('qui'=>$qui,'type'=> $quoi,'id'=>$flux['args']['id_objet']);
    110 
    111                 $journal(
    112                         _T($texte,$texte_infos),
    113                         array('qui' => $qui_ou_ip,'faire' => $faire,'quoi' => $quoi,'id' => $flux['args']['id_objet'])
    114                 );
     119               
     120                // On ne continue que si on a toutes les infos
     121                if ($faire and $qui_ou_ip and $quoi and $qui){
     122                        $journal = charger_fonction('journal','inc');
     123                        $texte_infos = array('qui'=>$qui,'type'=> $quoi,'id'=>$id_objet);
     124                        $journal(
     125                                _T($texte,$texte_infos),
     126                                array('qui' => $qui_ou_ip,'faire' => $faire,'quoi' => $quoi,'id' => $id_objet)
     127                        );
     128                }
    115129        }
    116130}
Note: See TracChangeset for help on using the changeset viewer.