source: spip-zone/_plugins_/_stable_/gestion_documents/action/copier_local.php @ 26395

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

"un champ libre pour les credits, qui recupere aussi l'url d'un document distant quand celui ci est rapatrie en local"

File size: 2.3 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2009                                                *
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// Fonction appellee lorsque l'utilisateur clique sur le bouton
16// 'copier en local' (document/portfolio).
17// Il s'agit de la partie logique, c'est a dire que cette fonction
18// realise la copie.
19
20// http://doc.spip.org/@action_copier_local_dist
21function action_copier_local_dist() {
22
23        // Recupere les arguments.
24        $securiser_action = charger_fonction('securiser_action', 'inc');
25        $arg = $securiser_action();
26
27        $id_document = intval($arg);
28
29        if (!$id_document) {
30                spip_log("action_copier_local_dist $arg pas compris");
31        } else  {
32                // arguments recuperes, on peut maintenant appeler la fonction.
33                action_copier_local_post($id_document);
34        }
35}
36
37// http://doc.spip.org/@action_copier_local_post
38function action_copier_local_post($id_document) {
39
40        // Il faut la source du document pour le copier
41        $row = sql_fetsel("mode,fichier, descriptif, credits", "spip_documents", "id_document=$id_document");
42        $source = $row['fichier'];
43
44        include_spip('inc/distant'); // pour 'copie_locale'
45        $fichier = copie_locale($source);
46        if ($fichier) {
47                $fichier = _DIR_RACINE . $fichier;
48                $files[] = array('tmp_name'=>$fichier,'name'=>basename($fichier));
49                $ajouter_documents = charger_fonction('ajouter_documents','action');
50                spip_log("convertit doc $id_document en local: $source => $fichier");
51                $liste = array();
52                $ajouter_documents($id_document,$files,'',0,$row['mode'],$liste);
53
54                spip_unlink($fichier);
55               
56                // ajouter l'origine du document aux credits
57                include_spip('action/editer_document');
58                document_set($id_document,array('credits'=>($row['credits']?$row['credits'].', ':'').$source));
59               
60        } else {
61                spip_log("echec copie locale $source");
62        }
63}
64
65?>
Note: See TracBrowser for help on using the repository browser.