source: spip-zone/_plugins_/getID3/trunk/getid3_administrations.php @ 71836

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

On en profite pour commencer à s'occuper des fichiers vidéos via ce plugin

On ajoute une pelletée de champs sur spip_documents pour gérer plus de métadonnées

On en profite pour passer un coup de PHPdoc

Le schema est incrémenté en 0.5.0

La version en 1.3.1

File size: 4.3 KB
Line 
1<?php
2/**
3 * GetID3
4 * Gestion des métadonnées de fichiers sonores et vidéos directement dans SPIP
5 *
6 * Auteurs :
7 * kent1 (http://www.kent1.info - kent1@arscenic.info), BoOz
8 * 2008-2013 - Distribué sous licence GNU/GPL
9 *
10 * Fichier gérant l'installation et désinstallation du plugin
11 *
12 * @package SPIP\GetID3\Installation
13 */
14
15if (!defined('_ECRIRE_INC_VERSION')) return;
16
17/**
18 * Installation/maj : création des champs manquants dans spip_documents et préconfiguration
19 *
20 * @param string $nom_meta_base_version
21 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
22 * @param string $version_cible
23 *     Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
24 * @return void
25 */
26function getid3_upgrade($nom_meta_base_version,$version_cible){
27        $maj = array();
28       
29        $maj['create'] = array(
30                array('maj_tables',array('spip_documents')),
31                array('getid3_verifier_binaires',array())
32        );
33        $maj['0.1'] = array(
34                array('maj_tables',array('spip_documents'))
35        );
36        $maj['0.2'] = array(
37                array('maj_tables',array('spip_documents'))
38        );
39        $maj['0.3.1'] = array(
40                array('getid3_verifier_binaires',array())
41        );
42        $maj['0.4.0'] = array(
43                array('getid3_upgrade_compat_spipmotion',array())
44        );
45        $maj['0.5.0'] = array(
46                array('maj_tables',array('spip_documents'))
47        );
48       
49        include_spip('base/upgrade');
50        maj_plugin($nom_meta_base_version, $version_cible, $maj);
51}
52
53/**
54 * Fonction de suppression du plugin
55 *
56 * Supprime les deux métas en base, configuration et installation
57 *
58 * @param string $nom_meta_base_version
59 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
60 *
61 * @return void
62 */
63function getid3_vider_tables($nom_meta_base_version) {
64        effacer_meta('getid3');
65        effacer_meta($nom_meta_base_version);
66}
67
68/**
69 * Fonction de vérification de la présence des fichiers binaires présents
70 *
71 * @return void
72 */
73function getid3_verifier_binaires(){
74        $getid3_binaires = charger_fonction('getid3_verifier_binaires','inc');
75        $getid3_binaires(true);
76}
77
78/**
79 * Fonction de mise en concordance de la base entre GetID3 et SPIPmotion
80 *
81 * @return void
82 */
83function getid3_upgrade_compat_spipmotion(){
84        $desc = sql_showtable('spip_documents', true, $connect);
85        /**
86         * Soit on transfère les anciens canaux en audiochannels si le champs audiochannels existe
87         * Soit on fait juste un alter table
88         */
89        if (is_array($desc['field']) && isset($desc['field']['canaux']) && isset($desc['field']['audiochannels'])) {
90                $res = sql_select("*","spip_documents","canaux > 0");
91                while($row = sql_fetch($res)){
92                        sql_updateq('spip_documents',array('audiochannels'=>$row['canaux'],'canaux'=>0),'id_document='.intval($row['id_document']));
93                        if (time() >= _TIME_OUT)
94                                return;
95                }
96                sql_alter('TABLE spip_documents DROP canaux');
97        }else if(isset($desc['field']['canaux'])){
98                sql_alter("TABLE spip_documents CHANGE `canaux` `audiochannels` TEXT DEFAULT '' NOT NULL");
99        }
100       
101        /**
102         * Soit on transfère les anciens bitrate_mode en audiobitratemode si le champs audiobitratemode existe
103         * Soit on fait juste un alter table
104         */
105        if (is_array($desc['field']) && isset($desc['field']['bitrate_mode']) && isset($desc['field']['audiobitratemode'])) {
106                $res = sql_select("*","spip_documents","bitrate_mode != ''");
107                while($row = sql_fetch($res)){
108                        sql_updateq('spip_documents',array('audiobitratemode'=>$row['bitrate_mode'],'bitrate_mode'=>''),'id_document='.intval($row['id_document']));
109                        if (time() >= _TIME_OUT)
110                                return;
111                }
112                sql_alter('TABLE spip_documents DROP bitrate_mode');
113        }else if(isset($desc['field']['bitrate_mode'])){
114                sql_alter("TABLE spip_documents CHANGE `bitrate_mode` `audiobitratemode` TEXT DEFAULT '' NOT NULL");
115        }
116       
117        /**
118         * On crée le champs audiobitrate s'il n'existe pas
119         * On transfère les anciens bitrate en audiobitratemode dans les champs audiobitrate vides
120         */
121        if(is_array($desc['field']) && !isset($desc['field']['audiobitrate'])) {
122                sql_alter("TABLE `spip_documents` ADD `audiobitrate` INT NOT NULL"); 
123        }
124        if (is_array($desc['field']) && isset($desc['field']['bitrate']) && isset($desc['field']['audiobitrate'])) {
125                $res = sql_select("*","spip_documents","audiobitrate = '' AND bitrate > 0");
126                while($row = sql_fetch($res)){
127                        sql_updateq('spip_documents',array('audiobitrate'=>$row['bitrate']),'id_document='.intval($row['id_document']));
128                        if (time() >= _TIME_OUT)
129                                return;
130                }
131        }
132}
133?>
Note: See TracBrowser for help on using the repository browser.