source: spip-zone/_core_/plugins/medias/medias_pipelines.php @ 43743

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

[en cours] merge avec le plugin mediatheque (les documents ne sont plus fonctionnels en l'etat, ne pas mettre a jour dans cette version hors contexte developpement)

File size: 4.5 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2011                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13
14if (!defined('_ECRIRE_INC_VERSION')) return;
15
16function medias_detecter_fond_par_defaut($fond){
17        // traiter le cas pathologique d'un upload de document ayant echoue
18        // car trop gros
19        if (empty($_GET) AND empty($_POST) AND empty($_FILES)
20        AND isset($_SERVER["CONTENT_LENGTH"])
21        AND strstr($_SERVER["CONTENT_TYPE"], "multipart/form-data;")) {
22                include_spip('inc/getdocument');
23                erreur_upload_trop_gros();
24        }
25  return $fond;
26}
27
28function medias_post_insertion($flux){
29
30        $objet = objet_type($flux['args']['table']);
31        if (in_array($objet,array('article','rubrique'))
32          AND $id_auteur = intval($GLOBALS['visiteur_session']['id_auteur'])){
33
34                # cf. GROS HACK ecrire/inc/getdocument
35                # rattrapper les documents associes a cet objet nouveau
36                # ils ont un id = 0-id_auteur
37                $id_objet = $flux['args']['id_objet'];
38                sql_updateq("spip_documents_liens", array("id_objet" => $id_objet), array("id_objet = ".(0-$id_auteur),"objet=".sql_quote($objet)));
39        }
40
41  return $flux;
42}
43
44function medias_configurer_liste_metas($config){
45        $config['documents_article'] = 'non';
46        $config['documents_rubrique'] = 'non';
47        $config['documents_date'] = 'non';
48        return $config;
49}
50
51
52function medias_post_edition($flux){
53        // si on ajoute un document, mettre son statut a jour
54        if($flux['args']['operation']=='ajouter_document'){
55                include_spip('action/editer_document');
56                // mettre a jour le statut si necessaire
57                instituer_document($flux['args']['id_objet']);
58        }
59        // si on institue un objet, mettre ses documents lies a jour
60        elseif($flux['args']['operation']=='instituer' OR isset($flux['data']['statut'])){
61                if ($flux['args']['table']!=='spip_documents'){
62                        // verifier d'abord les doublons !
63                        $marquer_doublons_doc = charger_fonction('marquer_doublons_doc','inc');
64                        $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']);
65                        include_spip('base/abstract_sql');
66                        $type = objet_type($flux['args']['table']);
67                        $id = $flux['args']['id_objet'];
68                        $docs = array_map('reset',sql_allfetsel('id_document','spip_documents_liens','id_objet='.intval($id).' AND objet='.sql_quote($type)));
69                        include_spip('action/editer_document');
70                        foreach($docs as $id_document)
71                                // mettre a jour le statut si necessaire
72                                instituer_document($id_document);
73                }
74        }
75        else {
76                if ($flux['args']['table']!=='spip_documents'){
77                        // verifier les doublons !
78                        $marquer_doublons_doc = charger_fonction('marquer_doublons_doc','inc');
79                        $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']);
80                }
81        }
82        return $flux;
83}
84
85// liste des exec avec la colonne document
86$GLOBALS['medias_exec_colonne_document'][] = 'articles_edit';
87$GLOBALS['medias_exec_colonne_document'][] = 'breves_edit';
88$GLOBALS['medias_exec_colonne_document'][] = 'rubriques_edit';
89
90function medias_affiche_gauche($flux){
91        if (in_array($flux['args']['exec'],$GLOBALS['medias_exec_colonne_document'])
92                AND $table = preg_replace(",_edit$,","",$flux['args']['exec'])
93                AND $type = objet_type($table)
94                AND $id_table_objet = id_table_objet($type)
95                AND ($id = intval($flux['args'][$id_table_objet]) OR $id = 0-$GLOBALS['visiteur_session']['id_auteur'])
96          AND (autoriser('joindredocument',$type,$id))){
97                $flux['data'] .= recuperer_fond('prive/editer/colonne_document',array('objet'=>$type,'id_objet'=>$id));
98        }
99
100        return $flux;
101}
102
103function medias_objets_extensibles($objets){
104        return array_merge($objets, array('document' => _T('medias:objet_documents')));
105}
106
107function medias_document_desc_actions($flux){
108        return $flux;
109}
110
111function medias_editer_document_actions($flux){
112        return $flux;
113}
Note: See TracBrowser for help on using the repository browser.