Skip to content
Extraits de code Groupes Projets
Valider 8b4e2a93 rédigé par esj's avatar esj
Parcourir les fichiers

Suite de [8918]:disparition de _DIR_IMG dans le champ "fichier" de la table...

Suite de [8918]:disparition de _DIR_IMG dans le champ "fichier" de la table des documents: les 2  fonctions get_spip_doc et set_spip_doc convertissent les infos dans la table SQL en l'adresse effective du fichier sur le disque. La misé jour à cette version de la base SQL (1.934) retire ce préfixe dans tous les champs "fichier" de la table des documents commençant _DIR_IMG. De manière exceptionnelle, si l'on installe ou fusionne une sauvegarde antérieure à ce numéro de version de la base, il y aura exécution d'un code équivalent à cette MAJ 1.934. Si l'attribut dir_img est présent dans la balise SPIP de la sauvegarde, sa valeur sera le préfixe retiré des champs "fichier", sinon IMG/ sera pris par défaut.
parent 6dde2847
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -48,16 +48,17 @@ function maj_base($version_cible = 0) { ...@@ -48,16 +48,17 @@ function maj_base($version_cible = 0) {
// Si pas de version mentionnee dans spip_meta, c'est qu'il s'agit // Si pas de version mentionnee dans spip_meta, c'est qu'il s'agit
// d'une nouvelle installation // d'une nouvelle installation
// => ne pas passer par le processus de mise a jour // => 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 fa
// //
// $version_installee = 1.702; quand on a besoin de forcer une MAJ // $version_installee = 1.702; quand on a besoin de forcer une MAJ
if (!$version_installee) { if (!$version_installee OR ($spip_version < $version_installee)) {
spip_query_db("REPLACE spip_meta (nom, valeur,impt) spip_query_db("REPLACE spip_meta (nom, valeur,impt)
VALUES ('version_installee', '$spip_version','non')"); VALUES ('version_installee', '$spip_version','non')");
return true; return true;
} }
// //
// Verification des droits de modification sur la base // Verification des droits de modification sur la base
// //
...@@ -1330,6 +1331,14 @@ function maj_base($version_cible = 0) { ...@@ -1330,6 +1331,14 @@ function maj_base($version_cible = 0) {
maj_version('1.933'); maj_version('1.933');
} }
// Retrait de _DIR_IMG dans le champ fichier de la table des doc
if (upgrade_vers(1.934, $version_installee, $version_cible)) {
$dir_img = substr(_DIR_IMG,strlen(_DIR_RACINE));
$n = strlen($dir_img) + 1;
spip_query("UPDATE spip_documents SET fichier=substr(fichier,$n) WHERE fichier LIKE " . _q($dir_img . '%'));
maj_version('1.934');
}
} }
?> ?>
...@@ -64,7 +64,8 @@ function inc_import_1_3_dist($lecteur, $request, $gz='fread', $atts=array()) { ...@@ -64,7 +64,8 @@ function inc_import_1_3_dist($lecteur, $request, $gz='fread', $atts=array()) {
$desc['field'], $desc['field'],
$gz, $gz,
$phpmyadmin, $phpmyadmin,
'/' . $table); '/' . $table,
$atts);
if ($values === false) return ($import_ok = false); if ($values === false) return ($import_ok = false);
...@@ -152,10 +153,18 @@ function import_replace($values, $table, $desc, $request, $atts='') { ...@@ -152,10 +153,18 @@ function import_replace($values, $table, $desc, $request, $atts='') {
} }
// http://doc.spip.org/@import_lire_champs // http://doc.spip.org/@import_lire_champs
function import_lire_champs($f, $fields, $gz, $phpmyadmin, $table) function import_lire_champs($f, $fields, $gz, $phpmyadmin, $table, $atts)
{ {
$values = array(); $values = array();
$dir_img = 0;
if (($atts['version_base'] < '1.934')
AND $table == '/spip_documents') {
$dir_img = '@^'. preg_quote (isset($atts['dir_img']) ? $atts['dir_img']:'IMG/') . '@';
}
if (!isset($GLOBALS['meta']['charset_insertion'])) if (!isset($GLOBALS['meta']['charset_insertion']))
$charset = ''; $charset = '';
else { else {
...@@ -163,7 +172,6 @@ function import_lire_champs($f, $fields, $gz, $phpmyadmin, $table) ...@@ -163,7 +172,6 @@ function import_lire_champs($f, $fields, $gz, $phpmyadmin, $table)
if ($charset == $GLOBALS['meta']['charset']) if ($charset == $GLOBALS['meta']['charset'])
$charset = ''; $charset = '';
} }
for (;;) { for (;;) {
$b = false; $b = false;
if (!($col = xml_fetch_tag($f, $b, $gz))) return false; if (!($col = xml_fetch_tag($f, $b, $gz))) return false;
...@@ -179,6 +187,9 @@ function import_lire_champs($f, $fields, $gz, $phpmyadmin, $table) ...@@ -179,6 +187,9 @@ function import_lire_champs($f, $fields, $gz, $phpmyadmin, $table)
if ($b) { if ($b) {
if ($phpmyadmin) if ($phpmyadmin)
$value = str_replace($phpmyadmin[0],$phpmyadmin[1],$value); $value = str_replace($phpmyadmin[0],$phpmyadmin[1],$value);
elseif ($dir_img) {
$value = preg_replace($dir_img, '', $value);
}
if ($charset) if ($charset)
$value = importer_charset($value, $charset); $value = importer_charset($value, $charset);
$values[$col]= $value; $values[$col]= $value;
......
...@@ -236,12 +236,12 @@ function _q($a) { ...@@ -236,12 +236,12 @@ function _q($a) {
} }
// http://doc.spip.org/@set_spip_doc // http://doc.spip.org/@set_spip_doc
function set_spip_doc($fichier) {return $fichier;} //function set_spip_doc($fichier) {return $fichier;}
// http://doc.spip.org/@get_spip_doc // http://doc.spip.org/@get_spip_doc
function get_spip_doc($fichier) {return _DIR_RACINE . $fichier;} //function get_spip_doc($fichier) {return _DIR_RACINE . $fichier;}
// pour bientot: // pour bientot:
//function set_spip_doc($fichier) {return substr($fichier, strlen(_DIR_IMG));} function set_spip_doc($fichier) {return substr($fichier, strlen(_DIR_IMG));}
//function get_spip_doc($fichier) {return _DIR_IMG . $fichier;} function get_spip_doc($fichier) {return _DIR_IMG . $fichier;}
// Renvoie le _GET ou le _POST emis par l'utilisateur // Renvoie le _GET ou le _POST emis par l'utilisateur
// ou pioche dans $c si c'est un array() // ou pioche dans $c si c'est un array()
......
...@@ -285,7 +285,7 @@ $tables_des_serveurs_sql['localhost'] = &$tables_principales; ...@@ -285,7 +285,7 @@ $tables_des_serveurs_sql['localhost'] = &$tables_principales;
// (utilise pour les modifs de la base de donnees) // (utilise pour les modifs de la base de donnees)
// version de la base // version de la base
$spip_version = 1.933; $spip_version = 1.934;
// version de spip en chaine // version de spip en chaine
// et en numerique a incrementer sur les evolutions qui cassent la compatibilite descendante // et en numerique a incrementer sur les evolutions qui cassent la compatibilite descendante
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter