source: spip-zone/_core_/plugins/medias/action/supprimer_document.php @ 43779

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

PHPDoc

File size: 2.3 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
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15// http://doc.spip.org/@supprimer_document
16function action_supprimer_document_dist($id_document=0) {
17        if (!$id_document){
18                $securiser_action = charger_fonction('securiser_action','inc');
19                $id_document = $securiser_action();
20        }
21        include_spip('inc/autoriser');
22        if (!autoriser('supprimer','document',$id_document))
23                return false;
24
25        // si c'etait une vignette, modifier le document source !
26        if ($source = sql_getfetsel('id_document', 'spip_documents', 'id_vignette='.intval($id_document))){
27                include_spip('action/editer_document');
28                document_set($source,array("id_vignette" => 0));
29        }
30
31        include_spip('inc/documents');
32        if (!$doc = sql_fetsel('*', 'spip_documents', 'id_document='.intval($id_document)))
33                return false;
34
35        spip_log("Suppression du document $id_document (".$doc['fichier'].")");
36
37        // Si c'est un document ayant une vignette, supprimer aussi la vignette
38        if ($doc['id_vignette']) {
39                action_supprimer_document_dist($doc['id_vignette']);
40                sql_delete('spip_documents_liens', 'id_document='.$doc['id_vignette']);
41        }
42
43        // dereferencer dans la base
44        sql_delete('spip_documents', 'id_document='.intval($id_document));
45
46
47        // Supprimer le fichier si le doc est local,
48        // et la copie locale si le doc est distant
49        if ($doc['distant'] == 'oui') {
50                include_spip('inc/distant');
51                if ($local = _DIR_RACINE . copie_locale($doc['fichier'],'test'))
52                        spip_unlink($local);
53        }
54        else
55                spip_unlink(get_spip_doc($doc['fichier']));
56
57        pipeline('post_edition',
58                array(
59                        'args' => array(
60                                'operation' => 'supprimer_document',
61                                'table' => 'spip_documents',
62                                'id_objet' => $id_document
63                        ),
64                        'data' => null
65                )
66        );
67}
68
69?>
Note: See TracBrowser for help on using the repository browser.