diff --git a/ecrire/action/changer_mode_document.php b/ecrire/action/changer_mode_document.php index b58cdaea70898eef1961271d92b5bfe8b7a5ebe2..bd78f19f8bf053437acca920301da6fd2d6c13d8 100644 --- a/ecrire/action/changer_mode_document.php +++ b/ecrire/action/changer_mode_document.php @@ -34,7 +34,7 @@ function action_changer_mode_document_post($r) list(, $id_document, $mode) = $r; if ($id_document = intval($id_document) AND in_array($mode, array('vignette', 'image', 'document'))) { - sql_updateq('spip_documents', array('genre'=>$mode), 'id_document='.$id_document); + sql_updateq('spip_documents', array('mode'=>$mode), 'id_document='.$id_document); } if ($case = _request('afficher_case')){ $case = explode('-',$case); diff --git a/ecrire/action/documenter.php b/ecrire/action/documenter.php index 3d25cfeb95f9c5464e5da9dab3ee5a0df031b540..121359344b243f649d68d4cbb5e491968bfeb32b 100644 --- a/ecrire/action/documenter.php +++ b/ecrire/action/documenter.php @@ -63,7 +63,7 @@ function action_documenter_post($r) else { $obj = "id_objet=".intval($id)." AND objet=".sql_quote($type); - $s = sql_select('D.id_document AS id_doc', "spip_documents AS D LEFT JOIN spip_documents_liens AS L ON L.id_document=D.id_document", "$obj AND D.genre='document' AND " . (sql_in('D.extension', array('gif', 'jpg', 'png'), $sign ? '' : 'NOT'))); + $s = sql_select('D.id_document AS id_doc', "spip_documents AS D LEFT JOIN spip_documents_liens AS L ON L.id_document=D.id_document", "$obj AND D.mode='document' AND " . (sql_in('D.extension', array('gif', 'jpg', 'png'), $sign ? '' : 'NOT'))); while ($t = sql_fetch($s)) { supprimer_lien_document($t['id_doc'], $type, $id); diff --git a/ecrire/base/serial.php b/ecrire/base/serial.php index 143093380b5a2ca2b2608b9ca19504bcf7e7f943..195adcf79fa82ed8d67017e5c1d9e02bcb77c4e4 100644 --- a/ecrire/base/serial.php +++ b/ecrire/base/serial.php @@ -204,14 +204,14 @@ $spip_documents = array( "taille" => "integer", "largeur" => "integer", "hauteur" => "integer", - "genre" => "ENUM('vignette', 'image', 'document') DEFAULT 'document' NOT NULL", + "mode" => "ENUM('vignette', 'image', 'document') DEFAULT 'document' NOT NULL", "distant" => "VARCHAR(3) DEFAULT 'non'", "maj" => "TIMESTAMP"); $spip_documents_key = array( "PRIMARY KEY" => "id_document", "KEY id_vignette" => "id_vignette", - "KEY genre" => "genre", + "KEY mode" => "mode", "KEY extension" => "extension"); $spip_documents_join = array( "id_document"=>"id_document", diff --git a/ecrire/exec/documents_liste.php b/ecrire/exec/documents_liste.php index 6f1f1befeb993cb0ec02fda773706cf23fd642c2..1bf51565d8e56e5f3c984d2f559bf5f59d94ec2f 100644 --- a/ecrire/exec/documents_liste.php +++ b/ecrire/exec/documents_liste.php @@ -46,7 +46,7 @@ echo debut_droite('', true); while ($row = sql_fetch($res)) $types[$row['extension']] = $row; - $result = sql_select("D.id_document AS id_doc, D.extension AS extension, D.fichier AS fichier, D.date AS date, D.titre AS titre, D.descriptif AS descriptif, R.id_rubrique AS id_rub, R.titre AS titre_rub", "spip_documents AS D, spip_documents_liens AS L, spip_rubriques AS R", "D.id_document = L.id_document AND R.id_rubrique = L.id_objet AND L.objet='rubrique' AND D.genre = 'document'", "", "D.date DESC"); + $result = sql_select("D.id_document AS id_doc, D.extension AS extension, D.fichier AS fichier, D.date AS date, D.titre AS titre, D.descriptif AS descriptif, R.id_rubrique AS id_rub, R.titre AS titre_rub", "spip_documents AS D, spip_documents_liens AS L, spip_rubriques AS R", "D.id_document = L.id_document AND R.id_rubrique = L.id_objet AND L.objet='rubrique' AND D.mode = 'document'", "", "D.date DESC"); while ($row=sql_fetch($result)){ $titre=$row['titre']; diff --git a/ecrire/inc/ajouter_documents.php b/ecrire/inc/ajouter_documents.php index 164fd679e50c42b9233a4598c8b63d29496b6579..900358e58aa4d8ab65b5e5d14da9dff546d336e7 100644 --- a/ecrire/inc/ajouter_documents.php +++ b/ecrire/inc/ajouter_documents.php @@ -289,8 +289,6 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode, // note : la fonction peut "mettre a jour un document" si on lui // passe "mode=document" et "id_document=.." (pas utilise) - // "mode" est interdit en Oracle. Cf svn 14588) - if (isset($a['mode'])) {$a['genre'] = $a['mode']; unset($a['mode']);} $id = sql_insertq("spip_documents", $a); spip_log ("ajout du document $source $nom_envoye (M '$mode' T '$type_lien' L '$id_lien' D '$id')"); @@ -305,7 +303,7 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode, } else spip_log("Pb d'insertion $id_lien $type_lien"); if ($id_document) { - sql_updateq("spip_documents", array("id_vignette" => $id, "genre" => 'document'), "id_document=$id_document"); + sql_updateq("spip_documents", array("id_vignette" => $id, "mode" => 'document'), "id_document=$id_document"); } else $id_document = $id; diff --git a/ecrire/inc/documenter.php b/ecrire/inc/documenter.php index a0e42ca223bc5dc84d0c770cb1f3e6d05557fbde..92396d25e80c71d78cc301d54c2835dd7124ddd7 100644 --- a/ecrire/inc/documenter.php +++ b/ecrire/inc/documenter.php @@ -28,9 +28,9 @@ function inc_documenter_dist( if (is_int($doc)) { $prim = 'id_' . $type; $img = ($ancre == 'portfolio') ? '' : " NOT"; - $select = "D.id_document, D.id_vignette, D.extension, D.titre, D.date, D.descriptif, D.fichier, D.taille, D.largeur, D.hauteur, D.genre, D.distant, L.vu, L.id_objet, L.id_objet as $prim"; + $select = "D.id_document, D.id_vignette, D.extension, D.titre, D.date, D.descriptif, D.fichier, D.taille, D.largeur, D.hauteur, D.mode, D.distant, L.vu, L.id_objet, L.id_objet as $prim"; $from = "spip_documents AS D LEFT JOIN spip_documents_liens AS L ON L.id_document=D.id_document"; - $where = "L.id_objet=$doc AND L.objet='$type' AND D.genre='document' AND D.extension $img IN ('gif', 'jpg', 'png')"; + $where = "L.id_objet=$doc AND L.objet='$type' AND D.mode='document' AND D.extension $img IN ('gif', 'jpg', 'png')"; $order = "0+D.titre, D.date"; $docs = sql_allfetsel($select, $from, $where, '', $order); $opt = array('objet'=>$type, 'id_objet' => $doc); diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php index f243ac196b615537ec0480e68dc07f0266b6999a..b7f13866cc4d9be6795f65acdbb2fa0b5a8b0fd4 100644 --- a/ecrire/inc/documents.php +++ b/ecrire/inc/documents.php @@ -293,7 +293,7 @@ function afficher_documents_colonne($id, $type="article",$script=NULL) { 'args' => "id_$type=$id", 'id' => $id, 'intitule' => _T('info_telecharger'), - 'mode' => 'image', // mode = genre + 'mode' => 'image', 'type' => $type, 'ancre' => '', 'id_document' => 0, @@ -303,7 +303,7 @@ function afficher_documents_colonne($id, $type="article",$script=NULL) { if (!_INTERFACE_DOCUMENTS) { //// Images sans documents - $res = sql_select("D.id_document", "spip_documents AS D LEFT JOIN spip_documents_liens AS T ON T.id_document=D.id_document", "T.id_objet=" . intval($id) . " AND T.objet=" . sql_quote($type) . " AND D.genre='image'", "", "D.id_document"); + $res = sql_select("D.id_document", "spip_documents AS D LEFT JOIN spip_documents_liens AS T ON T.id_document=D.id_document", "T.id_objet=" . intval($id) . " AND T.objet=" . sql_quote($type) . " AND D.mode='image'", "", "D.id_document"); $ret .= "\n<div id='liste_images'>"; @@ -347,9 +347,9 @@ function afficher_documents_colonne($id, $type="article",$script=NULL) { //// Documents associes $res = sql_select("D.id_document", "spip_documents AS D LEFT JOIN spip_documents_liens AS T ON T.id_document=D.id_document", "T.id_objet=" . intval($id) . " AND T.objet=" . sql_quote($type) . ((!_INTERFACE_DOCUMENTS) - ? " AND D.genre='document'" - : " AND D.genre IN ('image','document')" - ), "", "D.genre, D.id_document"); + ? " AND D.mode='document'" + : " AND D.mode IN ('image','document')" + ), "", "D.mode, D.id_document"); while($row = sql_fetch($res)) $ret .= afficher_case_document($row['id_document'], $id, $script, $type, ($id_document_actif==$row['id_document'])); @@ -405,7 +405,7 @@ function est_inclus($id_document) { function afficher_case_document($id_document, $id, $script, $type, $deplier=false) { global $spip_lang_right; - $document = sql_fetsel("D.id_document, D.id_vignette,D.extension,D.titre,D.descriptif,D.fichier,D.largeur,D.hauteur,D.taille,D.genre,D.distant, D.date, L.vu", "spip_documents AS D INNER JOIN spip_documents_liens AS L ON L.id_document=D.id_document", "L.id_objet=".intval($id)." AND objet=".sql_quote($type)." AND L.id_document=".intval($id_document)); + $document = sql_fetsel("D.id_document, D.id_vignette,D.extension,D.titre,D.descriptif,D.fichier,D.largeur,D.hauteur,D.taille,D.mode,D.distant, D.date, L.vu", "spip_documents AS D INNER JOIN spip_documents_liens AS L ON L.id_document=D.id_document", "L.id_objet=".intval($id)." AND objet=".sql_quote($type)." AND L.id_document=".intval($id_document)); if (!$document) return ""; @@ -415,7 +415,7 @@ function afficher_case_document($id_document, $id, $script, $type, $deplier=fals $fichier = $document['fichier']; $largeur = $document['largeur']; $hauteur = $document['hauteur']; - $mode = $document['genre']; + $mode = $document['mode']; $distant = $document['distant']; $titre = $document['titre']; $legender = charger_fonction('legender', 'inc'); @@ -522,7 +522,7 @@ function lister_les_documents_orphelins() { } // les vignettes qui n'appartiennent a aucun document sont aussi orphelines - $s = sql_select("V.id_document", "spip_documents AS V LEFT JOIN spip_documents AS D ON V.id_document=D.id_vignette", "V.genre='vignette' AND D.id_document IS NULL"); + $s = sql_select("V.id_document", "spip_documents AS V LEFT JOIN spip_documents AS D ON V.id_document=D.id_vignette", "V.mode='vignette' AND D.id_document IS NULL"); while ($t = sql_fetch($s)) $orphelins[$t['id_document']] = true; diff --git a/ecrire/inc/legender.php b/ecrire/inc/legender.php index e3c9c8d55797e5c90a0a0b707644f89383fada9b..e4a89b61ea500541dfb67e1f847ac21bb847cab5 100644 --- a/ecrire/inc/legender.php +++ b/ecrire/inc/legender.php @@ -40,7 +40,7 @@ function inc_legender_dist($id_document, $document, $script, $type, $id, $ancre, $flag = 'ajax'; } - if ($document['genre'] == 'image') { + if ($document['mode'] == 'image') { $supp = 'image-24.gif'; $label = _T('entree_titre_image'); $taille = $vignette = ''; @@ -187,7 +187,7 @@ function legender_image_doc($document, $id_document, $id, $type, $s, $script, $a if (!_BOUTON_MODE_IMAGE OR !in_array($document['extension'], array('jpg', 'gif', 'png'))) return ''; - if ($document['genre'] == 'image') { + if ($document['mode'] == 'image') { $texte = _T('upload_info_mode_document'); $mode = 'document'; $logo = 'doc-24.gif'; diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php index 34afb8f8a1e9bd419b5e5d5afe35d60909985fec..a01c19bffa160fd2ca14b6e230c7e042a57f834a 100644 --- a/ecrire/inc_version.php +++ b/ecrire/inc_version.php @@ -374,14 +374,15 @@ $liste_des_authentifications = array( @umask(0); // numero de branche, utilise par les plugins -// pour specifier les versions de SPIP necessaire -// il faut s'en tenir a un nombre de decimales fixe ex : 2.0.0, 2.0.0-dev, 2.0.0-beta, 2.0.0-beta2 +// pour specifier les versions de SPIP necessaires +// il faut s'en tenir a un nombre de decimales fixe +// ex : 2.0.0, 2.0.0-dev, 2.0.0-beta, 2.0.0-beta2 $spip_version_branche = "2.1.0 dev"; // version des signatures de fonctions PHP // (= numero SVN de leur derniere modif cassant la compatibilite et/ou necessitant un recalcul des squelettes) -$spip_version_code = 14588; +$spip_version_code = 14598; // version de la base SQL (= numero SVN de sa derniere modif) -$spip_version_base = 14588; +$spip_version_base = 14598; // version de l'interface a la base $spip_sql_version = 1; diff --git a/ecrire/maj/svn10000.php b/ecrire/maj/svn10000.php index 39adc494cb746208d2f77f0a6e60916f7d3bbbd5..cba9528a10a54f64437a392a5683d695da1ae666 100644 --- a/ecrire/maj/svn10000.php +++ b/ecrire/maj/svn10000.php @@ -228,9 +228,23 @@ $GLOBALS['maj'][14558] = array(array('upgrade_types_documents')); // etre sur qu'ils sont bien unipotents(?)... $GLOBALS['maj'][14559] = $GLOBALS['maj'][13904]+$GLOBALS['maj'][13929]+$GLOBALS['maj'][14558]; -$GLOBALS['maj'][14588] = array( + +// La version 14588 etait une mauvaise piste: +// Retour en arriere pour ceux qui l'ont subi, ne rien faire sinon +if (@$GLOBALS['meta']['version_installee'] >= 14588) { + + // "mode" est un mot-cle d'Oracle + $GLOBALS['maj'][14588] = array( array('sql_alter',"TABLE spip_documents DROP INDEX mode"), array('sql_alter',"TABLE spip_documents CHANGE mode genre ENUM('vignette', 'image', 'document') DEFAULT 'document' NOT NULL"), array('sql_alter',"TABLE spip_documents ADD INDEX genre(genre)") ); + // solution moins intrusive au pb de mot-clĂ© d'Oracle, retour avant 14588 + $GLOBALS['maj'][14598] = array( + array('sql_alter',"TABLE spip_documents DROP INDEX genre"), + array('sql_alter',"TABLE spip_documents CHANGE genre mode ENUM('vignette', 'image', 'document') DEFAULT 'document' NOT NULL"), + array('sql_alter',"TABLE spip_documents ADD INDEX mode(mode)") + ); +} + ?> diff --git a/ecrire/public/boucles.php b/ecrire/public/boucles.php index 9fe4bae0720b42f2d7d6bc360d3e7ca3899b234f..aee6e770f8ee3472dce45cdd2b036700183e86a2 100644 --- a/ecrire/public/boucles.php +++ b/ecrire/public/boucles.php @@ -141,9 +141,9 @@ function boucle_DOCUMENTS_dist($id_boucle, &$boucles) { array_unshift($boucle->where,array("'($id_table.taille > 0 OR $id_table.distant=\\'oui\\')'")); // Supprimer les vignettes - if (!isset($boucle->modificateur['criteres']['genre']) + if (!isset($boucle->modificateur['criteres']['mode']) AND !isset($boucle->modificateur['criteres']['tout'])) { - array_unshift($boucle->where,array("'!='", "'$id_table.genre'", "'\\'vignette\\''")); + array_unshift($boucle->where,array("'!='", "'$id_table.mode'", "'\\'vignette\\''")); } // Pour une boucle generique (DOCUMENTS) sans critere de lien, verifier diff --git a/ecrire/public/quete.php b/ecrire/public/quete.php index 10a27bbc0503949cf928d46d7a9737c62e52d0dd..c2ddbeb758b27959b12215242a33d01f162ac412 100644 --- a/ecrire/public/quete.php +++ b/ecrire/public/quete.php @@ -186,7 +186,7 @@ function vignette_logo_document($row, $connect='') } $f = get_spip_doc($fichier); if ($f AND @file_exists($f)) return $f; - if ($row['genre'] !== 'vignette') return ''; + if ($row['mode'] !== 'vignette') return ''; return generer_url_entite($row['id_document'], 'document','','', $connect); } diff --git a/prive/modeles/doc.html b/prive/modeles/doc.html index 019d61e792ee5dd27432058656886afb293827ba..9f79c0b82999c81a206587f3156cbb2b254a7e7f 100644 --- a/prive/modeles/doc.html +++ b/prive/modeles/doc.html @@ -10,13 +10,13 @@ Dans le cas d'une simple image (mode=image), on affiche le document lui-meme, sans lien de telechargement ] -[(#GENRE|=={image}|oui) +[(#MODE|=={image}|oui) #SET{fichier,#URL_DOCUMENT} #SET{width,#LARGEUR} #SET{height,#HAUTEUR} #SET{url,#ENV{lien}} ] -[(#GENRE|=={image}|non) +[(#MODE|=={image}|non) [(#SET{fichier,[(#LOGO_DOCUMENT||extraire_attribut{src})]})] [(#SET{width,[(#LOGO_DOCUMENT||extraire_attribut{width})]})] [(#SET{height,[(#LOGO_DOCUMENT||extraire_attribut{height})]})] diff --git a/prive/modeles/img.html b/prive/modeles/img.html index 61134d49fa425090039042d96dccc774e96e6a2b..96111d417dbdd8606e85e2faebbaa1b1329969e6 100644 --- a/prive/modeles/img.html +++ b/prive/modeles/img.html @@ -1,4 +1,4 @@ -<BOUCLE_document (DOCUMENTS) {id_document} {genre?} {tout}> +<BOUCLE_document (DOCUMENTS) {id_document} {mode?} {tout}> [(#REM) Modele pour <img> @@ -12,7 +12,7 @@ ] [(#SET{ image, - #GENRE|match{'image|vignette'} + #MODE|match{'image|vignette'} |sinon{#ENV{embed}} |?{' '} })][ diff --git a/squelettes-dist/inc-documents.html b/squelettes-dist/inc-documents.html index 22f373848d6a18ec4c1dee13cd8fb0907f3b7dc7..04de79e980131a018a8d27ccb60da0d6c5e7f62f 100644 --- a/squelettes-dist/inc-documents.html +++ b/squelettes-dist/inc-documents.html @@ -2,7 +2,7 @@ <B_documents_portfolio> <div id="documents_portfolio"> <h2><:info_portfolio:></h2> - <BOUCLE_documents_portfolio(DOCUMENTS) {id_article} {genre=document}{extension IN png,jpg,gif} {par num titre, date}{doublons}{vu=non}>[ + <BOUCLE_documents_portfolio(DOCUMENTS) {id_article} {mode=document}{extension IN png,jpg,gif} {par num titre, date}{doublons}{vu=non}>[ <a href="(#URL_DOCUMENT)" type="#MIME_TYPE" onclick="location.href='[(#URL_ARTICLE |parametre_url{id_document,#ID_DOCUMENT} )]#documents_portfolio';return false;"[ class="(#EXPOSER)"][ title="(#TITRE|attribut_html|couper{80})"]>[(#FICHIER @@ -16,7 +16,7 @@ [(#REM) Afficher en grand le document demande dans l'URL ] -<BOUCLE_afficher_document(DOCUMENTS) {id_document}{id_article} {genre=document}{extension IN png,jpg,gif}> +<BOUCLE_afficher_document(DOCUMENTS) {id_document}{id_article} {mode=document}{extension IN png,jpg,gif}> [(#MODELE{emb}|image_reduire{500,0})] </BOUCLE_afficher_document> @@ -25,7 +25,7 @@ Si un seul document est joint a l'article, et si le texte est vide, on incruste automatiquement ce document ] -<BOUCLE_documents_decompte(DOCUMENTS spip_documents_liens articles) {id_article} {genre=document}{texte=''}{extension !IN gif,jpg,png} {vu=non}> +<BOUCLE_documents_decompte(DOCUMENTS spip_documents_liens articles) {id_article} {mode=document}{texte=''}{extension !IN gif,jpg,png} {vu=non}> [(#TOTAL_BOUCLE|=={1} |?{[(#INCLURE{fond=modeles/emb, id_document} |trim)]})]</BOUCLE_documents_decompte> @@ -49,4 +49,4 @@ </div> </B_documents_joints> -<//B_documents_decompte> +<//B_documents_decompte> \ No newline at end of file diff --git a/squelettes-dist/inc-rss-item.html b/squelettes-dist/inc-rss-item.html index 26003f9cc199e48278d58ba9b6d513a4615d2393..3846ec6c0f8b647f20a25f0abdd4d486b3bbfb2c 100644 --- a/squelettes-dist/inc-rss-item.html +++ b/squelettes-dist/inc-rss-item.html @@ -46,7 +46,7 @@ [(#REM) Le bloc qui suit diffuse l'adresse des documents associes aux articles ; ajouter par ex. {extension=mp3} pour limiter a un certain type de document. -] <BOUCLE_documents(DOCUMENTS){id_article}{genre=document}{doublons}>[ +] <BOUCLE_documents(DOCUMENTS){id_article}{mode=document}{doublons}>[ <enclosure url="(#URL_DOCUMENT|url_absolue|unique)"[ length="(#TAILLE)"][ type="(#MIME_TYPE)"] />] </BOUCLE_documents> diff --git a/squelettes-dist/rubrique.html b/squelettes-dist/rubrique.html index 11b124e7c03055d9a8db0834e13ba24a28a3b343..8676ae91078422101c84f03e83fad38f96f7a89e 100644 --- a/squelettes-dist/rubrique.html +++ b/squelettes-dist/rubrique.html @@ -87,7 +87,7 @@ <div class="menu" id="documents_joints"> <h2><:titre_documents_joints:></h2> <ul> - <BOUCLE_documents_joints(DOCUMENTS) {id_rubrique} {genre=document} {par num titre, date} {doublons}> + <BOUCLE_documents_joints(DOCUMENTS) {id_rubrique} {mode=document} {par num titre, date} {doublons}> <li> <strong><a href="#URL_DOCUMENT" title="<:bouton_telecharger:>" type="#MIME_TYPE">[(#TITRE|sinon{<:info_document:>})]</a></strong> <small>(#TYPE_DOCUMENT[ – (#TAILLE|taille_en_octets)])</small>