source: spip-zone/_plugins_/auteurs_partout/trunk/auteurspartout_pipelines.php @ 96839

Last change on this file since 96839 was 96839, checked in by maieul@…, 5 years ago

tester l'existence d'un auteur avant de l'insérer (Rainer Muller)

File size: 1.9 KB
Line 
1<?php
2/**
3 * Plugin auteurs partout
4 * (c) 2012 cy_altern
5 * Licence GNU/GPL v3
6 */
7
8if (!defined('_ECRIRE_INC_VERSION')) return;
9
10function auteurspartout_post_insertion($flux) {
11        $Tinfos = lister_tables_objets_sql();   // tous les objets OK pour un auteur (SPIP + plugins)
12        $Tcfg = explode(',',$GLOBALS['meta']['auteurs_objets']);        // recup config du plugin
13       
14        if ($table = $flux['args']['table']
15                AND in_array($table, $Tcfg)
16                AND array_key_exists($table, $Tinfos)
17                AND ($Tinfos[$table]['editable'] == 'oui')
18                AND ($id = intval($flux['args']['id_objet']))
19                AND $type = $Tinfos[$table]['type']
20                AND isset($GLOBALS['auteur_session']['id_auteur'])
21                ) {
22        sql_insertq("spip_auteurs_liens", array(
23            'id_auteur' => $GLOBALS['auteur_session']['id_auteur'],
24            'id_objet' => $id,
25            'objet' => $type));
26    }
27
28    return $flux;
29}
30
31function auteurspartout_affiche_milieu($flux){
32        // ajouter la box de config dans la page de config des contenus de SPIP
33        if ($flux["args"]["exec"] == "configurer_contenu") {
34                $flux["data"] .=  recuperer_fond('prive/squelettes/inclure/configurer',array('configurer'=>'configurer_auteurspartout'));
35        }
36       
37        // si on est sur une page ou il faut inserer les auteurs...
38        $Tcfg = explode(',',$GLOBALS['meta']['auteurs_objets']);        // recup config du plugin
39        if ($en_cours = trouver_objet_exec($flux['args']['exec'])
40                AND in_array($en_cours['table_objet_sql'], $Tcfg)
41                AND $en_cours['edition']!==true // page visu
42                AND $type = $en_cours['type']
43                AND $id_table_objet = $en_cours['id_table_objet']
44                AND ($id = intval($flux['args'][$id_table_objet]))
45                ) {
46                $texte = recuperer_fond(
47                                'prive/objets/editer/liens',
48                                array(
49                                        'table_source'=>'auteurs',
50                                        'objet'=>$type,
51                                        'id_objet'=>$id,
52                                )
53                );
54
55                if ($p=strpos($flux['data'],"<!--affiche_milieu-->"))
56                        $flux['data'] = substr_replace($flux['data'],$texte,$p,0);
57                else
58                        $flux['data'] .= $texte;
59        }
60
61        return $flux;
62}
63
64?>
Note: See TracBrowser for help on using the repository browser.