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

Last change on this file since 61017 was 61017, checked in by cy_altern@…, 8 years ago

depot initial du plugin "auteurs partout" qui permet d'associer des auteurs a tous les objets de SPIP

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                ) {
21        sql_insertq("spip_auteurs_liens", array(
22            'id_auteur' => $GLOBALS['auteur_session']['id_auteur'],
23            'id_objet' => $id,
24            'objet' => $type));
25    }
26
27    return $flux;
28}
29
30function auteurspartout_affiche_milieu($flux){
31        // ajouter la box de config dans la page de config des contenus de SPIP
32        if ($flux["args"]["exec"] == "configurer_contenu") {
33                $flux["data"] .=  recuperer_fond('prive/squelettes/inclure/configurer',array('configurer'=>'configurer_auteurspartout'));
34        }
35       
36        // si on est sur une page ou il faut inserer les auteurs...
37        $Tcfg = explode(',',$GLOBALS['meta']['auteurs_objets']);        // recup config du plugin
38        if ($en_cours = trouver_objet_exec($flux['args']['exec'])
39                AND in_array($en_cours['table_objet_sql'], $Tcfg)
40                AND $en_cours['edition']!==true // page visu
41                AND $type = $en_cours['type']
42                AND $id_table_objet = $en_cours['id_table_objet']
43                AND ($id = intval($flux['args'][$id_table_objet]))
44                ) {
45                $texte = recuperer_fond(
46                                'prive/objets/editer/liens',
47                                array(
48                                        'table_source'=>'auteurs',
49                                        'objet'=>$type,
50                                        'id_objet'=>$id,
51                                )
52                );
53
54                if ($p=strpos($flux['data'],"<!--affiche_milieu-->"))
55                        $flux['data'] = substr_replace($flux['data'],$texte,$p,0);
56                else
57                        $flux['data'] .= $texte;
58        }
59
60        return $flux;
61}
62
63?>
Note: See TracBrowser for help on using the repository browser.