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

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

On renomme certains champs pour être en conformité avec SPIPmotion

bitrate est doublé en bitrate et audiobitrate
canaux devient audiochannels
bitrate_mode devient audiobitratemode

Schéma de base en 0.4.0

Version du plugin en 1.2.0

File size: 3.3 KB
Line 
1<?php
2/**
3 * GetID3
4 * Gestion des métadonnées de fichiers sonores directement dans SPIP
5 *
6 * Auteurs :
7 * kent1 (http://www.kent1.info - kent1@arscenic.info), BoOz
8 * 2008-2012 - Distribué sous licence GNU/GPL
9 *
10 * Définition des tables
11 *
12 */
13
14if (!defined('_ECRIRE_INC_VERSION')) return;
15
16function getid3_upgrade($nom_meta_base_version,$version_cible){
17        $maj = array();
18       
19        $maj['create'] = array(
20                array('maj_tables',array('spip_documents')),
21                array('getid3_verifier_binaires',array())
22        );
23        $maj['0.1'] = array(
24                array('maj_tables',array('spip_documents')),
25        );
26        $maj['0.2'] = array(
27                array('maj_tables',array('spip_documents')),
28        );
29        $maj['0.3.1'] = array(
30                array('getid3_verifier_binaires',array())
31        );
32        $maj['0.4.0'] = array(
33                array('getid3_upgrade_compat_spipmotion',array())
34        );
35       
36        include_spip('base/upgrade');
37        maj_plugin($nom_meta_base_version, $version_cible, $maj);
38}
39
40function getid3_vider_tables($nom_meta_base_version) {
41        effacer_meta($nom_meta_base_version);
42}
43
44function getid3_verifier_binaires(){
45        $getid3_binaires = charger_fonction('getid3_verifier_binaires','inc');
46        $getid3_binaires(true);
47}
48
49function getid3_upgrade_compat_spipmotion(){
50        $desc = sql_showtable('spip_documents', true, $connect);
51        /**
52         * Soit on transfère les anciens canaux en audiochannels si le champs audiochannels existe
53         * Soit on fait juste un alter table
54         */
55        if (is_array($desc['field']) && isset($desc['field']['canaux']) && isset($desc['field']['audiochannels'])) {
56                $res = sql_select("*","spip_documents","canaux > 0");
57                while($row = sql_fetch($res)){
58                        sql_updateq('spip_documents',array('audiochannels'=>$row['canaux'],'canaux'=>0),'id_document='.intval($row['id_document']));
59                        if (time() >= _TIME_OUT)
60                                return;
61                }
62                sql_alter('TABLE spip_documents DROP canaux');
63        }else if(isset($desc['field']['canaux'])){
64                sql_alter("TABLE spip_documents CHANGE `canaux` `audiochannels` TEXT DEFAULT '' NOT NULL");
65        }
66       
67        /**
68         * Soit on transfère les anciens bitrate_mode en audiobitratemode si le champs audiobitratemode existe
69         * Soit on fait juste un alter table
70         */
71        if (is_array($desc['field']) && isset($desc['field']['bitrate_mode']) && isset($desc['field']['audiobitratemode'])) {
72                $res = sql_select("*","spip_documents","bitrate_mode != ''");
73                while($row = sql_fetch($res)){
74                        sql_updateq('spip_documents',array('audiobitratemode'=>$row['bitrate_mode'],'bitrate_mode'=>''),'id_document='.intval($row['id_document']));
75                        if (time() >= _TIME_OUT)
76                                return;
77                }
78                sql_alter('TABLE spip_documents DROP bitrate_mode');
79        }else if(isset($desc['field']['bitrate_mode'])){
80                sql_alter("TABLE spip_documents CHANGE `bitrate_mode` `audiobitratemode` TEXT DEFAULT '' NOT NULL");
81        }
82       
83        /**
84         * On crée le champs audiobitrate s'il n'existe pas
85         * On transfère les anciens bitrate en audiobitratemode dans les champs audiobitrate vides
86         */
87        if(is_array($desc['field']) && !isset($desc['field']['audiobitrate'])) {
88                sql_alter("TABLE `spip_documents` ADD `audiobitrate` INT NOT NULL"); 
89        }
90        if (is_array($desc['field']) && isset($desc['field']['bitrate']) && isset($desc['field']['audiobitrate'])) {
91                $res = sql_select("*","spip_documents","audiobitrate = '' AND bitrate > 0");
92                while($row = sql_fetch($res)){
93                        sql_updateq('spip_documents',array('audiobitrate'=>$row['bitrate']),'id_document='.intval($row['id_document']));
94                        if (time() >= _TIME_OUT)
95                                return;
96                }
97        }
98}
99?>
Note: See TracBrowser for help on using the repository browser.