X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fplugins-dist%2Fmedias%2Fmedias_administrations.php;fp=www%2Fplugins-dist%2Fmedias%2Fmedias_administrations.php;h=d7dba546ea0d192b5b4b5141075ea7299a6fe384;hb=4f443dce95ff6f8221c189880a70c74ce1c1f238;hp=149c0449ca5338c2bb82876b0e02e5109fdd809a;hpb=4a628e9b277d3617535f99d663ca79fa2e891177;p=lhc%2Fweb%2Fwww.git diff --git a/www/plugins-dist/medias/medias_administrations.php b/www/plugins-dist/medias/medias_administrations.php index 149c0449..d7dba546 100644 --- a/www/plugins-dist/medias/medias_administrations.php +++ b/www/plugins-dist/medias/medias_administrations.php @@ -10,115 +10,127 @@ * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ -if (!defined('_ECRIRE_INC_VERSION')) return; +if (!defined('_ECRIRE_INC_VERSION')) { + return; +} /** * verifier et maj le statut des documents + * * @param bool $affiche * @return */ -function medias_check_statuts($affiche = false){ - $trouver_table = charger_fonction('trouver_table','base'); +function medias_check_statuts($affiche = false) { + $trouver_table = charger_fonction('trouver_table', 'base'); $desc = $trouver_table('documents'); # securite, si jamais on arrive ici avant un upgrade de base - if (!isset($desc['field']['statut'])) + if (!isset($desc['field']['statut'])) { return; + } // utiliser sql_allfetsel pour clore la requete avant la mise a jour en base sur chaque doc (sqlite) // iterer par groupe de 100 pour ne pas exploser sur les grosses bases - $docs = array_map('reset',sql_allfetsel('id_document','spip_documents',"statut='0'",'','',"0,100")); - while (count($docs)){ + $docs = array_map('reset', sql_allfetsel('id_document', 'spip_documents', "statut='0'", '', '', '0,100')); + while (count($docs)) { include_spip('action/editer_document'); - foreach($docs as $id_document) + foreach ($docs as $id_document) { // mettre a jour le statut si necessaire instituer_document($id_document); - if ($affiche) echo " ."; - $docs = array_map('reset',sql_allfetsel('id_document','spip_documents',"statut='0'",'','',"0,100")); + } + if ($affiche) { + echo ' .'; + } + $docs = array_map('reset', sql_allfetsel('id_document', 'spip_documents', "statut='0'", '', '', '0,100')); } } /** * Mise a jour de la BDD + * * @param string $nom_meta_base_version * @param string $version_cible */ -function medias_upgrade($nom_meta_base_version,$version_cible){ +function medias_upgrade($nom_meta_base_version, $version_cible) { // ne pas installer tant qu'on est pas a jour sur version base SPIP // cas typique d'un upgrade qui commence par suppression de connect.php // SPIP lance la maj des plugins lors de la connexion, alors que l'upgrade SPIP // a pas encore ete joue : ca casse cet upgrade quand on migre depuis un tres vieux SPIP if (isset($GLOBALS['meta']['version_installee']) - AND ($GLOBALS['spip_version_base'] != (str_replace(',','.',$GLOBALS['meta']['version_installee'])))) + and ($GLOBALS['spip_version_base'] != (str_replace(',', '.', $GLOBALS['meta']['version_installee']))) + ) { return; + } - if (!isset($GLOBALS['meta'][$nom_meta_base_version])){ - $trouver_table = charger_fonction('trouver_table','base'); + if (!isset($GLOBALS['meta'][$nom_meta_base_version])) { + $trouver_table = charger_fonction('trouver_table', 'base'); if ($desc = $trouver_table('spip_documents') - AND !isset($desc['field']['statut'])) - ecrire_meta($nom_meta_base_version,'0.1.0'); + and !isset($desc['field']['statut']) + ) { + ecrire_meta($nom_meta_base_version, '0.1.0'); + } } $maj = array(); $maj['create'] = array( - array('maj_tables',array('spip_documents','spip_documents_liens','spip_types_documents')), + array('maj_tables', array('spip_documents', 'spip_documents_liens', 'spip_types_documents')), array('creer_base_types_doc') ); $maj['0.2.0'] = array( - array('sql_alter',"TABLE spip_documents ADD statut varchar(10) DEFAULT '0' NOT NULL"), + array('sql_alter', "TABLE spip_documents ADD statut varchar(10) DEFAULT '0' NOT NULL"), ); $maj['0.3.0'] = array( - array('sql_alter',"TABLE spip_documents ADD date_publication datetime DEFAULT '0000-00-00 00:00:00' NOT NULL"), + array('sql_alter', "TABLE spip_documents ADD date_publication datetime DEFAULT '0000-00-00 00:00:00' NOT NULL"), ); $maj['0.4.0'] = array( // recalculer tous les statuts en tenant compte de la date de publi des articles... - array('medias_check_statuts',true), + array('medias_check_statuts', true), ); $maj['0.5.0'] = array( - array('sql_alter',"TABLE spip_documents ADD brise tinyint DEFAULT 0"), + array('sql_alter', 'TABLE spip_documents ADD brise tinyint DEFAULT 0'), ); $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','','media'), + array('sql_alter', "TABLE spip_types_documents ADD media varchar(10) DEFAULT 'file' NOT NULL"), + array('creer_base_types_doc', '', 'media'), ); $maj['0.7.0'] = array( - array('sql_alter',"TABLE spip_documents ADD credits varchar(255) DEFAULT '' NOT NULL"), + array('sql_alter', "TABLE spip_documents ADD credits varchar(255) DEFAULT '' NOT NULL"), ); $maj['0.10.0'] = array( - array('sql_alter',"TABLE spip_documents CHANGE fichier fichier TEXT NOT NULL DEFAULT ''"), + array('sql_alter', "TABLE spip_documents CHANGE fichier fichier TEXT NOT NULL DEFAULT ''"), ); $maj['0.11.0'] = array( - array('sql_alter',"TABLE spip_documents CHANGE mode mode varchar(10) DEFAULT 'document' NOT NULL"), + array('sql_alter', "TABLE spip_documents CHANGE mode mode varchar(10) DEFAULT 'document' NOT NULL"), ); $maj['0.14.0'] = array( array('medias_maj_meta_documents'), - array('creer_base_types_doc','','media'), + array('creer_base_types_doc', '', 'media'), ); $maj['0.15.0'] = array( - array('creer_base_types_doc','','media'), + array('creer_base_types_doc', '', 'media'), ); $maj['0.15.1'] = array( - array('sql_alter',"TABLE spip_documents CHANGE taille taille bigint"), + array('sql_alter', 'TABLE spip_documents CHANGE taille taille bigint'), ); $maj['0.16.0'] = array( - array('creer_base_types_doc','','media'), + 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('sql_alter', "TABLE spip_documents ADD media varchar(10) DEFAULT '?' NOT NULL"), 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"), + array('sql_alter', "TABLE spip_documents CHANGE media media varchar(10) DEFAULT 'file' NOT NULL"), ); $maj['1.0.1'] = array( // puis on retablit le bon defaut - array('sql_alter',"TABLE spip_types_documents CHANGE media media_defaut varchar(10) DEFAULT 'file' NOT NULL"), + array('sql_alter', "TABLE spip_types_documents CHANGE media media_defaut varchar(10) DEFAULT 'file' NOT NULL"), ); $maj['1.1.0'] = array( - array('sql_alter',"TABLE spip_documents_liens ADD INDEX id_objet (id_objet)"), - array('sql_alter',"TABLE spip_documents_liens ADD INDEX objet (objet)"), + array('sql_alter', 'TABLE spip_documents_liens ADD INDEX id_objet (id_objet)'), + array('sql_alter', 'TABLE spip_documents_liens ADD INDEX objet (objet)'), ); $maj['1.1.1'] = array( array('creer_base_types_doc'), @@ -126,7 +138,7 @@ function medias_upgrade($nom_meta_base_version,$version_cible){ // 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'"), + array('sql_updateq', 'spip_documents', array('media' => '?'), "media='file'"), // et on repeuple array('medias_peuple_media_document'), ); @@ -137,9 +149,9 @@ function medias_upgrade($nom_meta_base_version,$version_cible){ // ajout de mbtiles array('creer_base_types_doc'), // reparer les clauses DEFAULT manquantes de maniere reccurente sur cette table - array('sql_alter',"TABLE spip_documents CHANGE extension extension VARCHAR(10) DEFAULT '' NOT NULL"), - array('sql_alter',"TABLE spip_documents CHANGE credits credits varchar(255) DEFAULT '' NOT NULL"), - array('sql_alter',"TABLE spip_documents CHANGE statut statut varchar(10) DEFAULT '0' NOT NULL"), + array('sql_alter', "TABLE spip_documents CHANGE extension extension VARCHAR(10) DEFAULT '' NOT NULL"), + array('sql_alter', "TABLE spip_documents CHANGE credits credits varchar(255) DEFAULT '' NOT NULL"), + array('sql_alter', "TABLE spip_documents CHANGE statut statut varchar(10) DEFAULT '0' NOT NULL"), ); $maj['1.2.4'] = array( // ajout de tar @@ -150,51 +162,76 @@ function medias_upgrade($nom_meta_base_version,$version_cible){ array('creer_base_types_doc') ); $maj['1.2.6'] = array( - // ajout du champ titre pour json cf oubli dans https://zone.spip.org/trac/spip-zone/changeset/80059 - array("sql_updateq","spip_types_documents",array('titre'=>'JSON'),"extension='json'"), + // ajout de md (markdown) + array('creer_base_types_doc') ); $maj['1.2.7'] = array( - array('medias_maj_date_publication_documents'), - array('medias_check_statuts', true) + // ajout de ics + vcf + array('creer_base_types_doc') + ); + $maj['1.3.0'] = array( + // ajout de rang_lien + array('maj_tables', 'spip_documents_liens'), + ); + $maj['1.3.1'] = array( + // plus de place dans les crédits + array('sql_alter', "TABLE spip_documents CHANGE credits credits text DEFAULT '' NOT NULL"), + ); + $maj['1.3.2'] = array( + // buggons en 2038 plutôt qu'en 2018' + array('medias_check_statuts', true), + ); + $maj['1.3.4'] = array( + // 1.3.2 et 1.3.3 n'étaient pas suffisants grml' + array('medias_maj_date_publication_documents'), + array('medias_check_statuts', true) + ); + $maj['1.3.5'] = array( + // ajout de duree + array('maj_tables', 'spip_documents'), ); include_spip('base/upgrade'); include_spip('base/medias'); maj_plugin($nom_meta_base_version, $version_cible, $maj); - medias_check_statuts(); } /** * Maj des meta documents */ -function medias_maj_meta_documents(){ +function medias_maj_meta_documents() { $config = array(); - if (isset($GLOBALS['meta']['documents_article']) AND $GLOBALS['meta']['documents_article']!=='non') + if (isset($GLOBALS['meta']['documents_article']) and $GLOBALS['meta']['documents_article'] !== 'non') { $config[] = 'spip_articles'; - if (isset($GLOBALS['meta']['documents_rubrique']) AND $GLOBALS['meta']['documents_rubrique']!=='non') + } + if (isset($GLOBALS['meta']['documents_rubrique']) and $GLOBALS['meta']['documents_rubrique'] !== 'non') { $config[] = 'spip_rubriques'; - ecrire_meta('documents_objets',implode(',',$config)); + } + ecrire_meta('documents_objets', implode(',', $config)); } -function medias_peuple_media_document($champ_media="media_defaut"){ - $res = sql_select("DISTINCT extension","spip_documents","media=".sql_quote('?')); - while($row = sql_fetch($res)){ +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($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) + $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; + } } } -/** +/** * Maj des date de publication des documents cf ticket #3329, z104221 */ function medias_maj_date_publication_documents() { sql_update('spip_documents', array('statut' => '0'), 'date_publication > ' . sql_quote('2017-01-01 00:00:00')); + sql_update('spip_documents', array('statut' => '0'), 'date_publication = ' . sql_quote('1970-01-01 01:33:58')); } + /* -function medias_install($action,$prefix,$version_cible){ +function medias_install($action, $prefix, $version_cible){ $version_base = $GLOBALS[$prefix."_base_version"]; switch ($action){ case 'test':