source: spip-zone/_plugins_/gestion_documents/gestdoc_pipelines.php @ 37823

Last change on this file since 37823 was 37823, checked in by cedric@…, 11 years ago

une api provisoire avec une globale gestdoc_exec_colonne_document pour declarer les pages ou inserer la colonne document, mais ce n'est pas satisfaisant. Un pipeline serait peut etre mieux, a voir.

File size: 2.8 KB
Line 
1<?php
2/**
3 * Plugin Portfolio/Gestion des documents
4 * Licence GPL (c) 2006-2008 Cedric Morin, romy.tetue.net
5 *
6 */
7
8
9function gestdoc_post_edition($flux){
10        // si on ajoute un document, mettre son statut a jour
11        if($flux['args']['operation']=='ajouter_document'){
12                include_spip('action/editer_document');
13                // mettre a jour le statut si necessaire
14                instituer_document($flux['args']['id_objet']);
15        }
16        // si on institue un objet, mettre ses documents lies a jour
17        elseif($flux['args']['operation']=='instituer' OR isset($flux['data']['statut'])){
18                if ($flux['args']['table']!=='spip_documents'){
19                        // verifier d'abord les doublons !
20                        $marquer_doublons_doc = charger_fonction('marquer_doublons_doc','inc');
21                        $marquer_doublons_doc($flux['data'],$flux['args']['id_objet'],$flux['args']['type'],id_table_objet($flux['args']['type'], $flux['args']['serveur']),$flux['args']['table_objet'],$flux['args']['spip_table_objet'], '', $flux['args']['serveur']);
22                        include_spip('base/abstract_sql');
23                        $type = objet_type($flux['args']['table']);
24                        $id = $flux['args']['id_objet'];
25                        $docs = array_map('reset',sql_allfetsel('id_document','spip_documents_liens','id_objet='.intval($id).' AND objet='.sql_quote($type)));
26                        include_spip('action/editer_document');
27                        foreach($docs as $id_document)
28                                // mettre a jour le statut si necessaire
29                                instituer_document($id_document);
30                }
31        }
32        else {
33                if ($flux['args']['table']!=='spip_documents'){
34                        // verifier les doublons !
35                        $marquer_doublons_doc = charger_fonction('marquer_doublons_doc','inc');
36                        $marquer_doublons_doc($flux['data'],$flux['args']['id_objet'],$flux['args']['type'],id_table_objet($flux['args']['type'], $flux['args']['serveur']),$flux['args']['table_objet'],$flux['args']['spip_table_objet'], '', $flux['args']['serveur']);
37                }
38        }
39        return $flux;
40}
41
42// liste des exec avec la colonne document
43$GLOBALS['gestdoc_exec_colonne_document'][] = 'articles_edit';
44$GLOBALS['gestdoc_exec_colonne_document'][] = 'breves_edit';
45$GLOBALS['gestdoc_exec_colonne_document'][] = 'rubriques_edit';
46
47function gestdoc_affiche_gauche($flux){
48        if (in_array($flux['args']['exec'],$GLOBALS['gestdoc_exec_colonne_document'])
49                AND $table = preg_replace(",_edit$,","",$flux['args']['exec'])
50                AND $type = objet_type($table)
51                AND $id_table_objet = id_table_objet($type)
52                AND ($id = intval($flux['args'][$id_table_objet]) OR $id = 0-$GLOBALS['visiteur_session']['id_auteur'])
53          AND (autoriser('joindredocument',$type,$id))){
54                $flux['data'] .= recuperer_fond('prive/editer/colonne_document',array('objet'=>$type,'id_objet'=>$id));
55        }
56       
57        return $flux;
58}
59
60function gestdoc_objets_extensibles($objets){
61        return array_merge($objets, array('document' => _T('gestdoc:objet_documents')));
62}
63
64function gestdoc_document_desc_actions($flux){
65        return $flux;
66}
67
68function gestdoc_editer_document_actions($flux){
69        return $flux;
70}
Note: See TracBrowser for help on using the repository browser.