コード例 #1
0
ファイル: upgrade.php プロジェクト: rhertzog/lcs
function maj_base($version_cible = 0) {
	global $spip_version_base;

	$version_installee = @$GLOBALS['meta']['version_installee'];
	//
	// Si version nulle ou inexistante, c'est une nouvelle installation
	//   => ne pas passer par le processus de mise a jour.
	// De meme en cas de version superieure: ca devait etre un test,
	// il y a eu le message d'avertissement il doit savoir ce qu'il fait
	//
	// version_installee = 1.702; quand on a besoin de forcer une MAJ
	
	spip_log("Version anterieure: $version_installee. Courante: $spip_version_base");
	if (!$version_installee OR ($spip_version_base < $version_installee)) {
		sql_replace('spip_meta', 
		      array('nom' => 'version_installee',
			    'valeur' => $spip_version_base,
			    'impt' => 'non'));
		return false;
	}
	if (!upgrade_test()) return true;
	
	$cible = ($version_cible ? $version_cible : $spip_version_base);

	if ($version_installee <= 1.926) {
		$n = floor($version_installee * 10);
		while ($n < 19) {
			$nom  = sprintf("v%03d",$n);
			$f = charger_fonction($nom, 'maj', true);
			if ($f) {
				spip_log("$f repercute les modifications de la version " . ($n/10));
				$f($version_installee, $spip_version_base);
			} 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 < 2000) {
		if ($version_installee < 2)
			$version_installee = $version_installee*1000;
		include_spip('maj/v019');
	}
	if ($cible < 2)
		$cible = $cible*1000;

	include_spip('maj/svn10000');
	return maj_while($version_installee, $cible, $GLOBALS['maj'], 'version_installee');
}
コード例 #2
0
ファイル: upgrade.php プロジェクト: genma/spip_ynh
/**
 * MAJ de base de SPIP
 *
 * http://doc.spip.org/@maj_base
 *
 * @param int $version_cible
 * @param string $redirect
 * @return array|bool
 */
function maj_base($version_cible = 0, $redirect = '')
{
    global $spip_version_base;
    $version_installee = @$GLOBALS['meta']['version_installee'];
    //
    // Si version nulle ou inexistante, c'est une nouvelle installation
    //   => ne pas passer par le processus de mise a jour.
    // De meme en cas de version superieure: ca devait etre un test,
    // il y a eu le message d'avertissement il doit savoir ce qu'il fait
    //
    // version_installee = 1.702; quand on a besoin de forcer une MAJ
    spip_log("Version anterieure: {$version_installee}. Courante: {$spip_version_base}", "maj." . _LOG_INFO_IMPORTANTE);
    if (!$version_installee or $spip_version_base < $version_installee) {
        sql_replace('spip_meta', array('nom' => 'version_installee', 'valeur' => $spip_version_base, 'impt' => 'non'));
        return false;
    }
    if (!upgrade_test()) {
        return true;
    }
    $cible = $version_cible ? $version_cible : $spip_version_base;
    if ($version_installee <= 1.926) {
        $n = floor($version_installee * 10);
        while ($n < 19) {
            $nom = sprintf("v%03d", $n);
            $f = charger_fonction($nom, 'maj', true);
            if ($f) {
                spip_log("{$f} repercute les modifications de la version " . $n / 10, "maj." . _LOG_INFO_IMPORTANTE);
                $f($version_installee, $spip_version_base);
            } else {
                spip_log("pas de fonction pour la maj {$n} {$nom}", "maj." . _LOG_INFO_IMPORTANTE);
            }
            $n++;
        }
        include_spip('maj/v019_pre193');
        v019_pre193($version_installee, $version_cible);
    }
    if ($version_installee < 2000) {
        if ($version_installee < 2) {
            $version_installee = $version_installee * 1000;
        }
        include_spip('maj/v019');
    }
    if ($cible < 2) {
        $cible = $cible * 1000;
    }
    include_spip('maj/svn10000');
    ksort($GLOBALS['maj']);
    $res = maj_while($version_installee, $cible, $GLOBALS['maj'], 'version_installee', 'meta', $redirect, true);
    if ($res) {
        if (!is_array($res)) {
            spip_log("Pb d'acces SQL a la mise a jour", "maj." . _LOG_INFO_ERREUR);
        } else {
            echo _T('avis_operation_echec') . ' ' . join(' ', $res);
            echo install_fin_html();
        }
    }
    return $res;
}