Your IP : 216.73.216.20


Current Path : /home/etiennec/www/oldsite/plugins/auto/agenda_2_0/base/
Upload File :
Current File : /home/etiennec/www/oldsite/plugins/auto/agenda_2_0/base/agenda_upgrade.php

<?php
/**
 * Plugin Agenda pour Spip 2.0
 * Licence GPL
 * 
 *
 */

	$GLOBALS['agenda_base_version'] = 0.23;
	function agenda_verifier_base(){
		$version_base = $GLOBALS['agenda_base_version'];
		$current_version = 0.0;
		if (   (!isset($GLOBALS['meta']['agenda_base_version']) )
				|| (($current_version = $GLOBALS['meta']['agenda_base_version'])!=$version_base)){
			include_spip('base/agenda_evenements');
			if ($current_version==0.0){
				include_spip('base/create');
				include_spip('base/abstract_sql');
				creer_base();
				maj_tables('spip_rubriques'); 
				ecrire_meta('agenda_base_version',$current_version=$version_base,'non');
			}
			if (version_compare($current_version,"0.11","<")){
				sql_alter("TABLE spip_evenements ADD `horaire` ENUM('oui','non') DEFAULT 'oui' NOT NULL AFTER `lieu`");
				ecrire_meta('agenda_base_version',$current_version=0.11,'non');
			}
			if (version_compare($current_version,"0.12","<")){
				sql_alter("TABLE spip_evenements ADD `id_article` bigint(21) DEFAULT '0' NOT NULL AFTER `id_evenement`");
				sql_alter("TABLE spip_evenements ADD INDEX ( `id_article` )");
				$res = sql_select("*", "spip_evenements_articles");
				while ($row = sql_fetch($res)){
					$id_article = $row['id_article'];
					$id_evenement = $row['id_evenement'];
					sql_update("spip_evenements", "id_article=$id_article", "id_evenement=$id_evenement");
				}
				sql_drop_table("spip_evenements_articles");
				ecrire_meta('agenda_base_version',$current_version=0.12,'non');
			}
			if (version_compare($current_version,"0.13","<")){
				include_spip('base/create');
				include_spip('base/abstract_sql');
				creer_base();
				ecrire_meta('agenda_base_version',$current_version=0.13,'non');
			}
			if (version_compare($current_version,"0.18","<")){
				include_spip('base/create');
				include_spip('base/abstract_sql');
				creer_base();
				sql_update('spip_groupes_mots',array('tables_liees'=>"concat(tables_liees,'evenements,')"),"evenements='oui'");
				sql_alter("TABLE spip_groupes_mots DROP evenements");
				ecrire_meta('agenda_base_version',$current_version=0.18,'non');
			}
			if (version_compare($current_version,"0.20","<")){
				include_spip('base/abstract_sql');
				sql_alter("TABLE spip_rubriques ADD agenda tinyint(1) DEFAULT 0 NOT NULL");
				ecrire_meta('agenda_base_version',$current_version=0.20,'non');
			}
			if (version_compare($current_version,"0.21","<")){
				include_spip('base/abstract_sql');
				sql_alter("TABLE spip_evenements ADD adresse text NOT NULL");
				sql_alter("TABLE spip_evenements ADD inscription text NOT NULL");
				sql_alter("TABLE spip_evenements ADD places text NOT NULL");
				ecrire_meta('agenda_base_version',$current_version=0.21,'non');
			}
			if (version_compare($current_version,"0.22","<")){
				include_spip('base/abstract_sql');
				include_spip('base/create');
				include_spip('base/auxiliaires');
				maj_tables('spip_evenements_participants');
				ecrire_meta('agenda_base_version',$current_version=0.22,'non');
			}
			if (version_compare($current_version,"0.23","<")){
				include_spip('base/abstract_sql');
				sql_alter("TABLE spip_evenements CHANGE titre titre text NOT NULL DEFAULT ''");
				sql_alter("TABLE spip_evenements CHANGE descriptif descriptif text NOT NULL DEFAULT ''");
				sql_alter("TABLE spip_evenements CHANGE lieu lieu text NOT NULL DEFAULT ''");
				sql_alter("TABLE spip_evenements CHANGE adresse adresse text NOT NULL DEFAULT ''");
				ecrire_meta('agenda_base_version',$current_version=0.23,'non');
			}
		}
	}
	
	function agenda_vider_tables() {
		include_spip('base/agenda_evenements');
		include_spip('base/abstract_sql');
		sql_drop_table("spip_evenements");
		sql_drop_table("spip_mots_evenements");
		sql_alter("TABLE spip_rubriques DROP COLUMN agenda");
		effacer_meta('agenda_base_version');
	}
	
	function agenda_install($action){
		$version_base = $GLOBALS['agenda_base_version'];
		switch ($action){
			case 'test':
				return (isset($GLOBALS['meta']['agenda_base_version']) AND (version_compare($GLOBALS['meta']['agenda_base_version'],$version_base,">=")));
				break;
			case 'install':
				agenda_verifier_base();
				break;
			case 'uninstall':
				agenda_vider_tables();
				break;
		}
	}
?>