source: spip-zone/_plugins_/doc2img/trunk/doc2img_administrations.php @ 62050

Last change on this file since 62050 was 62050, checked in by kent1@…, 7 years ago

compat SPIP 3.0

paquet.xml
doc2img_administrations

File size: 4.1 KB
Line 
1<?php
2
3/**
4 * Plugin doc2img
5 * Installation / désinstallation du plugin
6 */
7
8if (!defined("_ECRIRE_INC_VERSION")) return;
9
10/**
11 *  Effectue l'ensemble des actions nécessaires au bon fonctionnement du plugin :
12 *  - mise en place de la table doc2img
13 *  - configuration par défaut de cfg
14 *  - definition de la version en cours du plugin
15 *
16 * @param $nom_meta_base_version Le nom de la meta d'installation
17 * @param $version_cible La version actuelle du plugin
18 */
19function doc2img_upgrade($nom_meta_base_version,$version_cible){
20
21        include_spip('inc/meta');
22        include_spip('base/abstract_sql');
23        include_spip('base/create');
24        $current_version = 0.0;
25
26        if ((!isset($GLOBALS['meta'][$nom_meta_base_version]))
27                || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
28
29                if (version_compare($current_version,'0.0','<=')){
30                       
31                        // A la première installation on crée les tables
32                        maj_tables('spip_documents');
33
34            // Insertion d'une première configuration
35            if(!is_array(lire_config('doc2img'))){
36                    $cfg = array(
37                        "format_document" => "pdf,bmp,tiff",
38                        "resolution" => "150",
39                        "repertoire_cible" => "doc2img",
40                        "format_cible" => "png",
41                        "proportion" => "on"
42                    );
43                                ecrire_meta('doc2img',serialize($cfg));
44            }
45           
46                        if (class_exists('Imagick')) {
47                                if(!is_array($formats = lire_config('doc2img_imagick_extensions'))){
48                                        $imagick = new Imagick();
49                                        $formats = $imagick->queryFormats();
50                                        ecrire_meta('doc2img_imagick_extensions',serialize($formats));
51                                }
52                        }
53
54                        ecrire_meta($nom_meta_base_version,$current_version=$version_cible,'non');
55                }
56                if (version_compare($current_version,'0.3','<')){
57            //définition des paramètres de base
58                        if(!is_array(lire_config('doc2img'))){
59                    $cfg = array(
60                        "format_document" => "pdf,bmp,tiff",
61                        "resolution" => "150",
62                        "repertoire_cible" => "doc2img",
63                        "format_cible" => "png",
64                        "proportion" => "on"
65                    );
66                                ecrire_meta('doc2img',serialize($cfg));
67                        }
68                        ecrire_meta($nom_meta_base_version,$current_version='0.3','non');
69                }
70                if (version_compare($current_version,'0.93','<')){
71                        if (class_exists('Imagick')) {
72                                if(!is_array($formats = lire_config('doc2img_imagick_extensions'))){
73                                        $imagick = new Imagick();
74                                        $formats = $imagick->queryFormats();
75                                        ecrire_meta('doc2img_imagick_extensions',serialize($formats));
76                                }
77                        }
78                        ecrire_meta($nom_meta_base_version,$current_version='0.93','non');
79                }
80                if (version_compare($current_version,'0.94','<')){
81                        /**
82                         * Transformation des anciens doc2img en documents normaux
83                         */
84                        maj_tables('spip_documents');
85                        doc2img_update_to_docs();
86                        ecrire_meta($nom_meta_base_version,$current_version='0.94','non');
87                        //sql_query("DROP TABLE spip_doc2img");
88                }
89        }
90}
91
92function doc2img_update_to_docs(){
93        include_spip('inc/documents');
94        $doc2imgs = sql_select('*','spip_doc2img');
95        $ajouter_documents = charger_fonction('ajouter_documents', 'action');
96        include_spip('action/editer_document');
97        while($doc2img = sql_fetch($doc2imgs)){
98                /**
99                 * On déplace le document dans la table des documents
100                 */
101                $id_document = $doc2img['id_document'];
102                $files = array(array('tmp_name'=>get_spip_doc($doc2img['fichier']),'name'=>basename(get_spip_doc($doc2img['fichier']))));
103                $x = $ajouter_documents('new', $files,'document', $id_document, 'doc2img');
104                if(intval($x)){
105                        /**
106                         * Si on a un document :
107                         * - on ajoute le numéro de page dans spip_documents
108                         * - on supprime le document en base
109                         * - on supprime le fichier physique
110                         */
111                        document_set($x,array("page" => $doc2img['page']));
112                        sql_delete('spip_doc2img','id_document='.intval($id_document).' AND fichier='.sql_quote($doc2img['fichier']));
113                        spip_unlink(get_spip_doc($doc2img['fichier']));
114                }
115        }
116}
117// Supprimer les éléments du plugin
118function doc2img_vider_tables($nom_meta_base_version) {
119        include_spip('base/abstract_sql');
120        sql_drop_table('spip_doc2img');
121        effacer_meta('doc2img');
122        effacer_meta($nom_meta_base_version);
123}
124?>
Note: See TracBrowser for help on using the repository browser.