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

Last change on this file since 121746 was 89837, checked in by kent1@…, 6 years ago

Indentations et broutilles

File size: 3.9 KB
Line 
1<?php
2/**
3 * Plugin doc2img
4 * Installation / désinstallation du plugin
5 *
6 * @package SPIP\Doc2img\Installation
7 */
8
9if (!defined("_ECRIRE_INC_VERSION")) return;
10
11/**
12 *  Effectue l'ensemble des actions nécessaires au bon fonctionnement du plugin :
13 *  - mise en place de la table doc2img
14 *  - configuration par défaut de cfg
15 *  - definition de la version en cours du plugin
16 *
17 * @param $nom_meta_base_version Le nom de la meta d'installation
18 * @param $version_cible La version actuelle du plugin
19 */
20function doc2img_upgrade($nom_meta_base_version, $version_cible){
21        $maj = array();
22       
23        /**
24         * Première installation
25         * On ajoute les champs spécifiques à spip_documents
26         * On crée la première configuration
27         */
28        $maj['create'] = array(
29                array('maj_tables', array('spip_documents')),
30                array('doc2img_creer_config')
31        );
32
33        $maj['0.3'] = array(
34                array('doc2img_creer_config')
35        );
36
37        $maj['0.93'] = array(
38                array('doc2img_creer_config')
39        );
40
41        $maj['0.94'] = array(
42                array('maj_tables', array('spip_documents')),
43                array('doc2img_creer_config'),
44                array('doc2img_update_to_docs')
45        );
46       
47        include_spip('base/upgrade');
48        maj_plugin($nom_meta_base_version, $version_cible, $maj);
49}
50
51/**
52 * Fonction de génération de configuration à l'installation
53 *
54 * Si pas de configuration enregistrée, ajoute une configuration par défaut :
55 * -* gestion des formats de fichier pdf, bmp, tiff
56 * -* résolution à 150 dpi
57 * -* le résultat sera une série de documents png
58 * -* on garde les proportions
59 *
60 * Si on a Imagick et que l'array des extensions gérées par Imagick n'existe pas, on le remplit
61 *
62 */
63function doc2img_creer_config(){
64        include_spip('inc/config');
65        if(!is_array(lire_config('doc2img'))){
66                $cfg = array(
67                        "format_document" => "pdf,bmp,tiff",
68                        "resolution" => "150",
69                        "format_cible" => "png",
70                        "proportion" => "on"
71                );
72                ecrire_meta('doc2img',serialize($cfg));
73        }
74
75        if (class_exists('Imagick')) {
76                if(!is_array($formats = lire_config('doc2img_imagick_extensions'))){
77                        $imagick = new Imagick();
78                        $formats = $imagick->queryFormats();
79                        ecrire_meta('doc2img_imagick_extensions',serialize($formats));
80                }
81        }
82}
83
84/**
85 * Fonction de mise à jour des anciens documents (dans la table spip_doc2img)
86 * en documents standards liés au document original
87 *
88 * Utilisé lors du passage à la version_base 0.94
89 */
90function doc2img_update_to_docs(){
91        include_spip('inc/documents');
92        include_spip('action/editer_document');
93        $doc2imgs = sql_allfetsel('*','spip_doc2img');
94        $ajouter_documents = charger_fonction('ajouter_documents', 'action');
95        foreach($doc2imgs as $doc2img){
96                /**
97                 * On déplace le document doc2img dans la table des documents
98                 */
99                $files = array(array('tmp_name'=>get_spip_doc($doc2img['fichier']),'name'=>basename(get_spip_doc($doc2img['fichier']))));
100                $x = $ajouter_documents('new', $files,'document', $doc2img['id_document'], 'doc2img');
101                if(intval(reset($x))){
102                        /**
103                         * Si on a un document doc2img:
104                         * - on ajoute le numéro de page dans spip_documents
105                         * - on supprime le doc2img en base
106                         * - on supprime le fichier physique
107                         */
108                        document_modifier(reset($x),array("page" => $doc2img['page']));
109                        sql_delete('spip_doc2img','id_document='.intval($doc2img['id_document']).' AND fichier='.sql_quote($doc2img['fichier']));
110                        spip_unlink(get_spip_doc($doc2img['fichier']));
111                }
112                if (time() >= _TIME_OUT){
113                        sql_free($doc2imgs);
114                        return;
115                }
116        }
117        sql_drop_table('spip_doc2img');
118}
119/**
120 * Fonction de suppression du plugin
121 *
122 * On efface les deux métas de configuration doc2img et doc2img_imagick_extensions
123 * On efface également la méta d'installation
124 *
125 * TODO Peut être supprimer les documents liés au document?
126 *
127 * @param string $nom_meta_base_version
128 *              Le nom de la méta d'installation
129 */
130function doc2img_vider_tables($nom_meta_base_version) {
131        effacer_meta('doc2img');
132        effacer_meta('doc2img_imagick_extensions');
133        effacer_meta($nom_meta_base_version);
134}
135?>
Note: See TracBrowser for help on using the repository browser.