Valider 40898f8a rédigé par esj's avatar esj
Parcourir les fichiers

Nouvelle numérotation pour $spip_version et introduction des types de...

Nouvelle numérotation pour $spip_version et introduction des types de documents ''sty'' et ''cls'' lié à LaTeX.

La numérotation de $spip_version sous forme d'un nombre réel déduit de $spip_version_code allant atteindre ses limites, on prend à présent comme valeur le numéro de dépot SVN introduisant un changement dans la base.

A nouveau, adaptation rétrospective du code de mise à jour à partir de la 1.9.2: en multipliant par 1000 ces valeurs de $spip_versions, on obtient des valeurs entières inférieures au numéro SVN actuel, et ça devient compatible avec le nouveau schéma général de mise à jour. Ça evite un quasi doublon de code et ça permet un test en vraie grandeur.

A noter que SVN ne donne pas accès automatiquement au dernier numéro de version d'un fichier, il faut toujours affecter $spip_version manuellement; du coup il y aura peut-etre parfois des dépots simultanés qui feront que le numéro affecté vaudra 1 de moins que celui qu'il faudrait. Pas dramatique.
parent 3dd6ab63
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+1 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -710,6 +710,7 @@ ecrire/lib/safehtml/index.php -text
ecrire/lib/safehtml/license.txt -text
ecrire/lib/safehtml/readme-SPIP.txt -text
ecrire/lib/safehtml/readme.txt -text
ecrire/maj/svn10000.php -text
ecrire/maj/v009.php -text
ecrire/maj/v010.php -text
ecrire/maj/v011.php -text
+5 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -61,6 +61,7 @@ $tables_documents = array(
			  'bin' => 'Binary Data',
			  'blend' => 'Blender',
			  'c' => 'C source',
			  'cls' => 'LaTeX Class',
			  'css' => 'Cascading Style Sheet',
			  'csv' => 'Comma Separated Values',
			  'deb' => 'Debian',
@@ -84,6 +85,7 @@ $tables_documents = array(
			  'sdd' => 'StarOffice',
			  'sdw' => 'StarOffice',
			  'sit' => 'Stuffit',
			  'sty' => 'LaTeX Style Sheet',
			  'sxc' => 'OpenOffice Calc',
			  'sxi' => 'OpenOffice Impress',
			  'sxw' => 'OpenOffice',
@@ -203,8 +205,9 @@ $tables_mime = array(
		'ott' => 'application/vnd.oasis.opendocument.text-template',
		'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
		'otp' => 'application/vnd.oasis.opendocument.presentation-template',
		'otg' => 'application/vnd.oasis.opendocument.graphics-template'
		
		'otg' => 'application/vnd.oasis.opendocument.graphics-template',
		'cls'=>'text/x-tex',
		'sty'=>'text/x-tex',
	);


+43 −24
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -60,9 +60,11 @@ function maj_base($version_cible = 0) {
	}
	if (!upgrade_test()) return;

	$cible = ($version_cible ? $version_cible : $spip_version);

	if ($version_installee <= 1.926) {
		$n = floor($version_installee * 10);
	$cible = ($version_cible ? $version_cible : $spip_version) * 10;
	while ($n < $cible) {
		while ($n < 19) {
			$nom  = sprintf("v%03d",$n);
			$f = charger_fonction($nom, 'maj', true);
			if ($f) {
@@ -71,9 +73,21 @@ function maj_base($version_cible = 0) {
			} else spip_log("pas de fonction pour la maj $n $nom");
			$n++;
		}
		include_spip('maj/v019_pre193');
		v019_pre193($version_installee, $version_cible);
	}
	if ($version_installee < 2) {
		$version_installee = $version_installee*1000;
		include_spip('maj/v019');
	}
	if ($cible < 2)
		$cible = $cible*1000;

	maj_while($version_installee, $cible);
}

// A partir des > 1.926 (i.e SPIP > 1.9.2), le while ci-dessus aboutit ici.

// A partir des > 1.926 (i.e SPIP > 1.9.2), cette fonction gere les MAJ.
// Se relancer soi-meme pour eviter l'interruption pendant une operation SQL
// (qu'on espere pas trop longue chacune)
// evidemment en ecrivant dans la meta a quel numero on en est.
@@ -81,24 +95,21 @@ function maj_base($version_cible = 0) {
define('_UPGRADE_TIME_OUT', 20);

// http://doc.spip.org/@maj_while
function maj_while($version_installee, $version_cible)
function maj_while($installee, $cible)
{
	$pref = floor($version_installee);
	$cible = substr($version_cible*1000,-3);
	$installee = substr($version_installee*1000,-3);
	$time = time();
	include_spip('maj/svn10000');

	$n = 0;
	$time = time();

	$chgt = $GLOBALS['maj'][$pref];
	while ($installee < $cible) {
		$installee++;
		$version = ($pref . '.' . $installee);
		if (isset($chgt[$installee])) {
			serie_alter($installee, $chgt[$installee]);
		if (isset($GLOBALS['maj'][$installee])) {
			serie_alter($installee, $GLOBALS['maj'][$installee]);
			$n = time() - $time;
			spip_log("MAJ de $version_installee a $version en $n secondes",'maj');
		} else spip_log("MAJ $version: rien pour SQL", 'maj');
		ecrire_meta('version_installee', $version,'non');
			spip_log("MAJ vers $installee en $n secondes",'maj');
		} // rien pour SQL
		ecrire_meta('version_installee', $installee,'non');
		if ($n >= _UPGRADE_TIME_OUT) {
			redirige_par_entete(generer_url_ecrire('upgrade', "reinstall=$installee", true));
		}
@@ -142,6 +153,14 @@ function convertir_un_champ_blob_en_text($table,$champ,$type){
	}
}

// La fonction a appeler dans le tableau global $maj 
// quand on rajoute des types MIME. cf par exemple la 1.953

function upgrade_types_documents() {
	include_spip('base/create');
	creer_base_types_doc();
}

// http://doc.spip.org/@upgrade_test
function upgrade_test() {
	sql_drop_table("spip_test", true);
+2 −6
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -289,12 +289,8 @@ $liste_des_forums = array(
// Droits d'acces maximum par defaut
@umask(0);

// Version courante de SPIP
// Stockee sous forme de nombre decimal afin de faciliter les comparaisons
// (utilise pour les modifs de la base de donnees)

// version de la base
$spip_version = 1.958;
// version de la base (= numero SVN de sa derniere modif)
$spip_version = 10990;

// version de l'interface a la base
$spip_sql_version = 1;
+21 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<?php

/***************************************************************************\
 *  SPIP, Systeme de publication pour l'internet                           *
 *                                                                         *
 *  Copyright (c) 2001-2007                                                *
 *  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;

/*--------------------------------------------------------------------- */
/*	Gestion des MAJ par tableau indexe par le numero SVN du chgt	*/
/*--------------------------------------------------------------------- */

$GLOBALS['maj'][10990] = array(array('upgrade_types_documents'));

?>
Chargement en cours