Browse Source

processus d'installation/upgrade :

- ne creer que les tables de l'extension qui s'installe
- utiliser la fonction maj_plugin a laquelle on fournit un tableau d'operations elementaires
- gerer la transition depuis SPIP 2.1 dans tous les cas (table existante mais pas de meta)
svn/root/tags/plugins/statistiques/0.3.2
cedric@yterium.com 12 years ago
parent
commit
143de03491
  1. 10
      base/stats.php
  2. 43
      base/stats_upgrade.php
  3. 2
      plugin.xml

10
base/stats.php

@ -1,5 +1,15 @@
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2011 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
function stats_declarer_tables_auxiliaires($tables_auxiliaires){

43
base/stats_upgrade.php

@ -1,22 +1,39 @@
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2011 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
function stats_upgrade($nom_meta_base_version,$version_cible){
$current_version = 0.0;
if ( (!isset($GLOBALS['meta'][$nom_meta_base_version]) )
|| (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
if ($current_version==0.0){
include_spip('base/stats');
include_spip('base/create');
// creer les tables
creer_base();
// mettre les metas par defaut
$config = charger_fonction('config','inc');
$config();
ecrire_meta($nom_meta_base_version,$current_version=$version_cible);
// cas particulier :
// si plugin pas installe mais que la table existe
// considerer que c'est un upgrade depuis v 1.0.0
// pour gerer l'historique des installations SPIP <=2.1
if (!isset($GLOBALS['meta'][$nom_meta_base_version])){
$trouver_table = charger_fonction('trouver_table','base');
if ($desc = $trouver_table('spip_visites')
AND isset($desc['field'])){
ecrire_meta($nom_meta_base_version,'1.0.0');
}
// si pas de table en base, on fera une simple creation de base
}
$maj = array();
$maj['create'] = array(
array('maj_tables',array('spip_visites','spip_visites_articles','spip_referers','spip_referers_articles')),
);
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
function stats_vider_tables($nom_meta_base_version) {

2
plugin.xml

@ -3,7 +3,7 @@
<icon>prive/themes/spip/images/statistique-32.png</icon>
<auteur>Collectif SPIP</auteur>
<version>0.3.1</version>
<version_base>0.1.0</version_base>
<version_base>1.0.0</version_base>
<etat>dev</etat>
<description>
Statistiques de SPIP

Loading…
Cancel
Save