diff --git a/base/medias.php b/base/medias.php index 09475776d6077d7b0763d929c788848fd0d63f46..e8531bc62d2216cf1fca6056a79a2cb28f6673bc 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 55a0b2eee9be24122de3fc3b23849d3f99a95184..53d0af1940b0704022d86d2f59fb247091ad7041 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 a8b253effd405a4a708a493699cf9a5684f75f78..00a96f9cf6a164a0f4de06002f87219fc2a84fe4 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>