source: spip-zone/_plugins_/pub_banner/trunk/pubban_administrations.php @ 61127

Last change on this file since 61127 was 61127, checked in by piero.wbmstr@…, 7 years ago

Les upgrades selon les anciennes versions installées … je n'ai pas pu vérifier pour la version 0.5 mais les autres sont OK

  • Property svn:executable set to *
File size: 4.2 KB
Line 
1<?php
2/**
3 * @name                Installation
4 * @author              Piero Wbmstr <@link piero.wbmstr@gmail.com>
5 * @license             http://creativecommons.org/licenses/by-nc-sa/3.0/ Creative Commons BY-NC-SA
6 * @version     1.0 (06/2009)
7 * @package             Pub Banner
8 */
9if (!defined("_ECRIRE_INC_VERSION")) return;
10
11/**
12 * Installation/maj des tables publicites
13 *
14 * @param string $nom_meta_base_version
15 * @param string $version_cible
16 */
17function pubban_upgrade($nom_meta_base_version,$version_cible) 
18{
19        $maj = array();
20        $inserer_exemples = false;
21
22        // Si pas installe : on creer les tables et on insere les bannieres de test
23        $maj['create'] = array(
24                array('maj_tables',array('spip_publicites','spip_bannieres','spip_pubban_stats','spip_bannieres_publicites')),
25                array('pubban_inserer_exemples')
26        );
27
28        // Si deja installe, on maj sans inserer
29       
30        // v <0.8
31        $maj['0.4'] = array(
32                array('sql_alter', "TABLE spip_pubban_publicites ADD `titre_id` varchar(30) NOT NULL default ''"),
33        );
34
35        $maj['0.5'] = array(
36                array('sql_query', "RENAME TABLE spip_pubban_publicites TO spip_publicites"),
37                array('sql_query', "ALTER TABLE `spip_publicites` CHANGE `id_pub` `id_publicite` bigint(21) NOT NULL"),
38                array('sql_query', "RENAME TABLE spip_pubban_emplacements TO spip_bannieres"),
39                array('sql_query', "ALTER TABLE `spip_bannieres` CHANGE `id_empl` `id_banniere` bigint(21) NOT NULL"),
40                array('sql_query', "RENAME TABLE spip_pubban_pub_empl TO spip_bannieres_publicites"),
41                array('sql_query', "ALTER TABLE `spip_bannieres_publicites` CHANGE `id_pub` `id_publicite` bigint(21) NOT NULL"),
42                array('sql_query', "ALTER TABLE `spip_bannieres_publicites` CHANGE `id_empl` `id_banniere` bigint(21) NOT NULL"),
43                array('sql_query', "ALTER TABLE `spip_pubban_stats` CHANGE `id_empl` `id_banniere` bigint(21) NOT NULL"),
44        );
45
46        // v 0.8
47        $maj['0.8'] = array(
48                array('sql_alter', "TABLE spip_bannieres ADD `refresh` bigint(5) NOT NULL default '0'"),
49                array('sql_alter', "TABLE spip_pubban_stats ADD `id_publicite` bigint(21) NOT NULL"),
50                array('sql_alter', "TABLE spip_pubban_stats ADD INDEX `id_publicite` (`id_publicite`)"),
51                array('sql_alter', "TABLE spip_pubban_stats ADD `page` varchar(255) NOT NULL"),
52                array('maj_tables',array('spip_publicites','spip_bannieres','spip_pubban_stats','spip_bannieres_publicites'))
53        );
54
55        spip_log("Plugin PUB BANNER - installation OK - tables creees ou mises a jour en base");
56        include_spip('base/upgrade');
57        maj_plugin($nom_meta_base_version, $version_cible, $maj);
58}
59
60function pubban_inserer_exemples()
61{
62        include_spip('base/pubban_chargeur');
63        foreach($GLOBALS['bannieres_site'] as $key => $value)
64                sql_insertq('spip_bannieres', $value, '');
65        foreach($GLOBALS['publicites_site'] as $key => $value){
66                $id_empl = $value['id_banniere'];
67                unset($value['id_banniere']);
68                $id_pub = sql_insertq('spip_publicites', $value, '');
69                if($id_pub) sql_insertq('spip_bannieres_publicites', array('id_publicite'=>$id_pub, 'id_banniere'=>$id_empl), '');
70        }
71        spip_log("Plugin PUB BANNER - valeurs de tests inserees");
72}
73
74function pubban_vider_tables($nom_meta_base_version) 
75{
76        // Flag pour forcer l'effacement ?
77        $force = (defined('PUBBAN_FORCE_UNINSTALL') AND PUBBAN_FORCE_UNINSTALL==1) ? true : false;
78
79        // On verifie qu'il n'y ait pas de valeurs enregistrees
80        $count_join = $force ? 0 : sql_countsel('spip_bannieres_publicites');
81        $count_stats = $force ? 0 : sql_countsel('spip_pubban_stats');
82//      echo 'join : '.$count_join.' et stats : '.$count_stats; exit;
83
84        // Si ok, on efface
85        if($count_join==0 AND $count_stats==0){
86                sql_drop_table('spip_publicites');
87                sql_drop_table('spip_bannieres');
88                sql_drop_table('spip_pubban_stats');
89                sql_drop_table('spip_bannieres_publicites');
90                effacer_meta($nom_meta_base_version);
91        }
92        // Sinon, on informe
93        else {
94                spip_log("Plugin PUB BANNER - uninstall pas possible car $count_join pubs et $count_stats statisqtiques en base ! - forcer l'effacement avec PUBBAN_FORCE_UNINSTALL=true dans 'pubban_options.php'");
95                echo "Plugin PUB BANNER - uninstall pas possible car $count_join pubs et $count_stats statisqtiques en base ! - forcer l'effacement avec PUBBAN_FORCE_UNINSTALL=true dans 'pubban_options.php' ou sauvegardez vos données et videz vos tables";
96                return false;
97        }
98
99        return true;
100}
101
102?>
Note: See TracBrowser for help on using the repository browser.