From 1be5891b83e162606795a7f4e209545d573b1097 Mon Sep 17 00:00:00 2001 From: "cedric@yterium.com" <> Date: Sat, 5 May 2012 15:55:55 +0000 Subject: [PATCH] Ferme http://core.spip.org/issues/2679 : reparer les documents et le processus d'upgrade depuis spip 2.1 --- base/medias.php | 18 +++++++++--------- medias_administrations.php | 23 +++++++++++++++-------- paquet.xml | 2 +- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/base/medias.php b/base/medias.php index 09475776..e8531bc6 100644 --- a/base/medias.php +++ b/base/medias.php @@ -187,13 +187,13 @@ function medias_declarer_tables_objets_sql($tables){ * @param string $serveur * @return void */ -function creer_base_types_doc($serveur='') { +function creer_base_types_doc($serveur='', $champ_media="media_defaut") { global $tables_images, $tables_sequences, $tables_documents, $tables_mime; include_spip('base/typedoc'); include_spip('base/abstract_sql'); // charger en memoire tous les types deja definis pour limiter les requettes - $rows = sql_allfetsel('mime_type,titre,inclus,extension,media_defaut,upload,descriptif','spip_types_documents','','','','','',$serveur); + $rows = sql_allfetsel('mime_type,titre,inclus,extension,'.$champ_media.',upload,descriptif','spip_types_documents','','','','','',$serveur); $deja = array(); foreach ($rows as $k=>$row){ $deja[$row['extension']] = &$rows[$k]; @@ -229,13 +229,13 @@ function creer_base_types_doc($serveur='') { $media = "video"; $set = array( - 'mime_type' => $type_mime, - 'titre' => $titre, - 'inclus' => $inclus, - 'extension' => $extension, - 'media_defaut' => $media, - 'upload' => 'oui', - 'descriptif' => '', + 'mime_type' => $type_mime, + 'titre' => $titre, + 'inclus' => $inclus, + 'extension' => $extension, + $champ_media => $media, + 'upload' => 'oui', + 'descriptif' => '', ); if (!isset($deja[$extension])){ $insertions[] = $set; diff --git a/medias_administrations.php b/medias_administrations.php index 55a0b2ee..53d0af19 100644 --- a/medias_administrations.php +++ b/medias_administrations.php @@ -53,7 +53,7 @@ function medias_upgrade($nom_meta_base_version,$version_cible){ $maj = array(); $maj['create'] = array( array('maj_tables',array('spip_documents','spip_documents_liens','spip_types_documents')), - array('creer_base_types_doc') + array('creer_base_types_doc','','media') ); $maj['0.2.0'] = array( array('sql_alter',"TABLE spip_documents ADD statut varchar(10) DEFAULT '0' NOT NULL"), @@ -70,7 +70,7 @@ function medias_upgrade($nom_meta_base_version,$version_cible){ ); $maj['0.6.0'] = array( array('sql_alter',"TABLE spip_types_documents ADD media varchar(10) DEFAULT 'file' NOT NULL"), - array('creer_base_types_doc'), + array('creer_base_types_doc','','media'), ); $maj['0.7.0'] = array( array('sql_alter',"TABLE spip_documents ADD credits varchar(255) DEFAULT '' NOT NULL"), @@ -88,22 +88,22 @@ function medias_upgrade($nom_meta_base_version,$version_cible){ array('medias_maj_meta_documents'), ); $maj['0.14.0'] = array( - array('creer_base_types_doc'), + array('creer_base_types_doc','','media'), ); $maj['0.15.0'] = array( - array('creer_base_types_doc'), + array('creer_base_types_doc','','media'), ); $maj['0.15.1'] = array( array('sql_alter',"TABLE spip_documents CHANGE taille taille bigint"), ); $maj['0.16.0'] = array( - array('creer_base_types_doc'), + array('creer_base_types_doc','','media'), ); $maj['1.0.0'] = array( // on cree le champ en defaut '?' pour reperer les nouveaux a peupler array('sql_alter',"TABLE spip_documents ADD media varchar(10) DEFAULT '?' NOT NULL"), - array('medias_peuple_media_document'), + array('medias_peuple_media_document', 'media'), // puis on retablit le bon defaut array('sql_alter',"TABLE spip_documents CHANGE media media varchar(10) DEFAULT 'file' NOT NULL"), ); @@ -119,6 +119,13 @@ function medias_upgrade($nom_meta_base_version,$version_cible){ $maj['1.1.1'] = array( array('creer_base_types_doc'), ); + // reparer les media sur les file suite a upgrade rate depuis SPIP 2.x + $maj['1.2.0'] = array( + // on remet en ? tous les media=file + array('sql_updateq',"spip_documents",array('media'=>'?'),"media='file'"), + // et on repeuple + array('medias_peuple_media_document'), + ); include_spip('base/upgrade'); @@ -140,11 +147,11 @@ function medias_maj_meta_documents(){ ecrire_meta('documents_objets',implode(',',$config)); } -function medias_peuple_media_document(){ +function medias_peuple_media_document($champ_media="media_defaut"){ $res = sql_select("DISTINCT extension","spip_documents","media=".sql_quote('?')); while($row = sql_fetch($res)){ // attention ici c'est encore le champ media, car on le renomme juste apres - $media = sql_getfetsel('media','spip_types_documents','extension='.sql_quote($row['extension'])); + $media = sql_getfetsel($champ_media,'spip_types_documents','extension='.sql_quote($row['extension'])); sql_updateq('spip_documents',array('media'=>$media),"media=".sql_quote('?').' AND extension='.sql_quote($row['extension'])); if (time() >= _TIME_OUT) return; diff --git a/paquet.xml b/paquet.xml index a8b253ef..00a96f9c 100644 --- a/paquet.xml +++ b/paquet.xml @@ -5,7 +5,7 @@ etat="stable" compatibilite="[3.0.0-alpha2;[" logo="prive/themes/spip/images/portfolio-32.png" - schema="1.1.1" + schema="1.2.0" > <nom>Medias</nom> -- GitLab