Skip to content
Extraits de code Groupes Projets
Valider 4d312735 rédigé par Fil's avatar Fil
Parcourir les fichiers

suppression des id_type de documents, remplaces par extension ; la seule chose...

suppression des id_type de documents, remplaces par extension ; la seule chose que je ne sais pas verifier, c'est la question des sauvegardes/restaurations, surtout avec du code que je ne comprends pas et qui est marque 'a voir' ; a voir, donc :)
parent 753135bc
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Affichage de
avec 138 ajouts et 138 suppressions
......@@ -63,7 +63,7 @@ function action_acceder_document_dist() {
$where = "documents.fichier="._q(set_spip_doc($file))
. ($arg ? " AND documents.id_document=".intval($arg): '');
$s = spip_query("SELECT documents.id_document, documents.titre, documents.descriptif, documents.distant, documents.fichier, types.mime_type FROM spip_documents AS documents LEFT JOIN spip_types_documents AS types ON documents.id_type=types.id_type WHERE ".$where);
$s = spip_query("SELECT documents.id_document, documents.titre, documents.descriptif, documents.distant, documents.fichier, types.mime_type FROM spip_documents AS documents LEFT JOIN spip_types_documents AS types ON documents.extension=types.extension WHERE ".$where);
if (!$doc = spip_fetch_array($s)) {
$status = 404;
} else {
......
......@@ -37,8 +37,8 @@ function action_documenter_post($r)
}
else {
if ($sign)
$x = spip_query("SELECT docs.id_document FROM spip_documents AS docs, spip_documents_".$type."s AS l, spip_types_documents AS lestypes WHERE l.id_$type=$id AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension IN ('gif', 'jpg', 'png')");
else $x = spip_query("SELECT docs.* FROM spip_documents AS docs, spip_documents_".$type."s AS l, spip_types_documents AS lestypes WHERE l.id_$type=$id AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension NOT IN ('gif', 'jpg', 'png')");
$x = spip_query("SELECT docs.id_document FROM spip_documents AS docs, spip_documents_".$type."s AS l WHERE l.id_$type=$id AND l.id_document=docs.id_document AND docs.mode='document' AND docs.extension IN ('gif', 'jpg', 'png')");
else $x = spip_query("SELECT docs.* FROM spip_documents AS docs, spip_documents_".$type."s AS l WHERE l.id_$type=$id AND l.id_document=docs.id_document AND docs.mode='document' AND docs.extension NOT IN ('gif', 'jpg', 'png')");
while($r = spip_fetch_array($x)) {
//supprimer_document_et_vignette($r['id_document']);
// on dissocie, mais si le doc est utilise dans le texte, il sera reassocie ..., donc condition sur vu !
......
......@@ -187,7 +187,7 @@ function gdRotate ($src, $dest, $rtt){
ImageInterlace($dst_img,0);
// obligatoire d'enregistrer dans le meme format, puisqu'on change le doc
// mais pas son id_type
// mais pas son extension
$save($dst_img,$dest);
}
......
......@@ -61,11 +61,11 @@ function balise_FORMULAIRE_ADMIN_dyn($float='', $debug='') {
// Ne pas afficher le bouton 'Modifier ce...' si l'objet n'existe pas
foreach (array('article', 'breve', 'rubrique', 'mot', 'auteur', 'syndic') as $type) {
$id_type = id_table_objet($type);
if ($n = intval($$id_type)) {
$s = spip_query("SELECT $id_type FROM spip_".table_objet($type)." WHERE $id_type=".$$id_type);
$_id_type = id_table_objet($type);
if ($n = intval($$_id_type)) {
$s = spip_query("SELECT $_id_type FROM spip_".table_objet($type)." WHERE $_id_type=".$n);
if ($s AND spip_num_rows($s)) {
$$id_type = $n;
$$_id_type = $n;
$objet_affiche = $type;
break;
}
......@@ -135,7 +135,7 @@ function balise_FORMULAIRE_ADMIN_dyn($float='', $debug='') {
OR $objet_affiche == 'breve'
OR $objet_affiche == 'rubrique'
OR $objet_affiche == 'syndic')
$preview = spip_num_rows(spip_query("SELECT id_$objet_affiche FROM spip_".table_objet($objet_affiche)." WHERE ".id_table_objet($objet_affiche)."=".$$id_type." AND ((statut IN ('prop', 'prive')) " . (!$p ? '' : "OR (statut='publie' AND date>NOW())") .")"));
$preview = spip_num_rows(spip_query("SELECT id_$objet_affiche FROM spip_".table_objet($objet_affiche)." WHERE ".id_table_objet($objet_affiche)."=".$$_id_type." AND ((statut IN ('prop', 'prive')) " . (!$p ? '' : "OR (statut='publie' AND date>NOW())") .")"));
}
//
......
......@@ -34,11 +34,7 @@ function creer_base() {
spip_mysql_create($k, $v['field'], $v['key'], false);
foreach($tables_images as $k => $v)
spip_query_db("INSERT IGNORE INTO spip_types_documents (extension, inclus, titre, id_type) VALUES ('$k', 'image', '" .
(is_numeric($v) ?
(strtoupper($k) . "', $v") :
"$v', 0") .
")");
spip_query_db("INSERT IGNORE INTO spip_types_documents (extension, inclus, titre) VALUES ("._q($k).", 'image'," . _q($v).')');
foreach($tables_sequences as $k => $v)
spip_query_db("INSERT IGNORE INTO spip_types_documents (extension, titre, inclus) VALUES ('$k', '$v', 'embed')");
......
......@@ -208,7 +208,8 @@ $spip_rubriques_key = array(
$spip_documents = array(
"id_document" => "bigint(21) NOT NULL",
"id_vignette" => "bigint(21) DEFAULT '0' NOT NULL",
"id_type" => "bigint(21) DEFAULT '0' NOT NULL",
/* "id_type" => "bigint(21) DEFAULT '0' NOT NULL", */
"extension" => "VARCHAR(10)",
"titre" => "text",
"date" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"descriptif" => "text",
......@@ -225,24 +226,26 @@ $spip_documents_key = array(
"PRIMARY KEY" => "id_document",
"KEY id_vignette" => "id_vignette",
"KEY mode" => "mode",
"KEY id_type" => "id_type");
"KEY extension" => "extension");
$spip_documents_join = array(
"id_document"=>"id_document",
"id_type"=>"id_type");
"extension"=>"extension");
$spip_types_documents = array(
"id_type" => "bigint(21) NOT NULL",
/* "id_type" => "bigint(21) NOT NULL", */
"extension" => "varchar(10)",
"titre" => "text",
"descriptif" => "text",
"extension" => "varchar(10)",
"mime_type" => "varchar(100)",
"inclus" => "ENUM('non', 'image', 'embed') NOT NULL DEFAULT 'non'",
"upload" => "ENUM('oui', 'non') NOT NULL DEFAULT 'oui'",
"maj" => "TIMESTAMP");
$spip_types_documents_key = array(
"PRIMARY KEY" => "id_type",
/* "PRIMARY KEY" => "id_type",
"UNIQUE extension" => "extension",
*/
"PRIMARY KEY" => "extension",
"KEY inclus" => "inclus");
$spip_syndic = array(
......
......@@ -18,9 +18,9 @@ global $tables_images, $tables_sequences, $tables_documents, $tables_mime, $mime
$tables_images = array(
// Images reconnues par PHP
'jpg' => 1,
'png' => 2,
'gif' => 3,
'jpg' => 'JPEG',
'png' => 'PNG',
'gif' =>'GIF',
// Autres images (peuvent utiliser le tag <img>)
'bmp' => 'BMP',
......
......@@ -1385,6 +1385,7 @@ function maj_base($version_cible = 0) {
}
maj_version('1.935');
}
if (upgrade_vers(1.937, $version_installee, $version_cible)) {
// convertir les champs blob des tables spip en champs texte
convertir_un_champ_blob_en_text("spip_articles","texte","LONGTEXT");
......@@ -1404,8 +1405,28 @@ function maj_base($version_cible = 0) {
convertir_un_champ_blob_en_text("spip_syndic_articles","descriptif","LONGTEXT");
convertir_un_champ_blob_en_text("spip_petitions","texte","LONGTEXT");
convertir_un_champ_blob_en_text("spip_ortho_cache","suggest","TEXT");
maj_version('1.937');
maj_version('1.938');
}
if (upgrade_vers(1.938, $version_installee, $version_cible)) {
// Ajouter un champ extension aux spip_documents, et le
// remplir avec les valeurs ad hoc
spip_query("ALTER TABLE spip_documents ADD extension VARCHAR(10) NOT NULL DEFAULT ''");
spip_query("ALTER TABLE spip_documents ADD INDEX extension (extension)");
$s = spip_query("SELECT id_type,extension FROM spip_types_documents");
while ($t = spip_fetch_array($s)) {
spip_query("UPDATE spip_documents
SET extension="._q($t['extension'])
." WHERE id_type="._q($t['id_type']));
}
spip_query("ALTER TABLE spip_documents DROP INDEX id_type, DROP id_type");
spip_query("ALTER TABLE spip_types_documents DROP INDEX id_type, DROP id_type");
## recreer la PRIMARY KEY sur spip_types_documents.extension
spip_query("ALTER TABLE spip_types_documents ADD PRIMARY KEY (extension)");
maj_version('1.938');
}
}
?>
\ No newline at end of file
......@@ -41,37 +41,36 @@ fin_boite_info();
debut_droite();
// recupere les types
// recupere les titres des types
$res = spip_query("SELECT * FROM spip_types_documents");
while ($row = spip_fetch_array($res))
$types[$row['id_type']] = $row;
$result = spip_query("SELECT docs.id_document AS id_doc, docs.id_type AS type, docs.fichier AS fichier, docs.date AS date, docs.titre AS titre, docs.descriptif AS descriptif, lien.id_rubrique AS id_rub, rubrique.titre AS titre_rub FROM spip_documents AS docs, spip_documents_rubriques AS lien, spip_rubriques AS rubrique WHERE docs.id_document = lien.id_document AND rubrique.id_rubrique = lien.id_rubrique AND docs.mode = 'document' ORDER BY docs.date DESC");
while($row=spip_fetch_array($result)){
$titre=$row['titre'];
$descriptif=$row['descriptif'];
$date=$row['date'];
$id_document=$row['id_doc'];
$id_rubrique=$row['id_rub'];
$titre_rub = typo($row['titre_rub']);
$fichier = $row['fichier'];
if (!$titre) $titre = _T('info_document').' '.$id_document;
debut_cadre_relief("doc-24.gif");
echo "<b>$titre</b> (" . $types[$row['type']]['titre'] . ', ' . affdate($date) . ")";
if ($descriptif)
echo "<p>".propre($descriptif) . '</p>';
else
echo "<p><tt>$fichier</tt>" . '</p>';
echo "<p>"._T('info_dans_rubrique')." <a href='" . generer_url_ecrire("naviguer","id_rubrique=$id_rubrique") . "'>$titre_rub</a></p>";
fin_cadre_relief();
$types[$row['extension']] = $row;
$result = spip_query("SELECT docs.id_document AS id_doc, docs.extension AS extension, docs.fichier AS fichier, docs.date AS date, docs.titre AS titre, docs.descriptif AS descriptif, lien.id_rubrique AS id_rub, rubrique.titre AS titre_rub FROM spip_documents AS docs, spip_documents_rubriques AS lien, spip_rubriques AS rubrique WHERE docs.id_document = lien.id_document AND rubrique.id_rubrique = lien.id_rubrique AND docs.mode = 'document' ORDER BY docs.date DESC");
while ($row=spip_fetch_array($result)){
$titre=$row['titre'];
$descriptif=$row['descriptif'];
$date=$row['date'];
$id_document=$row['id_doc'];
$id_rubrique=$row['id_rub'];
$titre_rub = typo($row['titre_rub']);
$fichier = $row['fichier'];
if (!$titre) $titre = _T('info_document').' '.$id_document;
debut_cadre_relief("doc-24.gif");
echo "<b>$titre</b> (" . $types[$row['extension']]['titre'] . ', ' . affdate($date) . ")";
if ($descriptif)
echo propre($descriptif);
else
echo "<p><tt>$fichier</tt>" . '</p>';
echo "<p>"._T('info_dans_rubrique')." <a href='" . generer_url_ecrire("naviguer","id_rubrique=$id_rubrique") . "'>$titre_rub</a></p>";
fin_cadre_relief();
}
echo fin_gauche(), fin_page();
echo fin_gauche(), fin_page();
}
?>
......@@ -56,7 +56,6 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode,
# $a['fichier'] est une copie locale du fichier
$fichier = $source;
$id_type = $a['id_type'];
$taille = $a['taille'];
$titre = $a['titre'];
$largeur = $a['largeur'];
......@@ -129,7 +128,7 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode,
spip_log("Impossible de copier_document($ext, $nom_envoye, $source)");
return;
}
$id_type = $row['id_type']; # numero du type dans spip_types_documents:(
$extension = $row['extension'];
$type_inclus_image = ($row['inclus'] == 'image');
// Prevoir traitement specifique pour videos
......@@ -224,14 +223,15 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode,
// passe "mode=document" et "id_document=.." (pas utilise)
if (!$id_document) {
// Inserer le nouveau doc et recuperer son id_
$id_document = spip_abstract_insert("spip_documents", "(id_type, titre, date, distant)", "($id_type, " . _q($titre) . ", NOW(), '$distant')");
$id_document = spip_abstract_insert("spip_documents", "(extension, titre, date, distant)", "("._q($extension).", " . _q($titre) . ", NOW(), '$distant')");
if ($id_lien
AND preg_match('/^[a-z0-9_]+$/i', $type_lien) # securite
) {
spip_abstract_insert("spip_documents_".$type_lien."s",
"(id_document, id_".$type_lien.")",
"($id_document, $id_lien)");
) {
spip_abstract_insert("spip_documents_".$type_lien."s",
"(id_document, id_".$type_lien.")",
"($id_document, $id_lien)"
);
}
// par defaut (upload ZIP ou ftp) integrer
// les images en mode 'vignette' et le reste en mode document
......
......@@ -13,11 +13,11 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
// http://doc.spip.org/@inc_chercher_logo_dist
function inc_chercher_logo_dist($id, $id_type, $mode='on') {
function inc_chercher_logo_dist($id, $_id_objet, $mode='on') {
global $formats_logos;
# attention au cas $id = '0' pour LOGO_SITE_SPIP : utiliser intval()
$type = type_du_logo($id_type);
$type = type_du_logo($_id_objet);
$nom = $type . $mode . intval($id);
foreach ($formats_logos as $format) {
......@@ -29,21 +29,21 @@ function inc_chercher_logo_dist($id, $id_type, $mode='on') {
}
// http://doc.spip.org/@type_du_logo
function type_du_logo($id_type) {
return isset($GLOBALS['table_logos'][$id_type])
? $GLOBALS['table_logos'][$id_type]
: preg_replace(',^id_,', '', $id_type);
function type_du_logo($_id_objet) {
return isset($GLOBALS['table_logos'][$_id_objet])
? $GLOBALS['table_logos'][$_id_objet]
: preg_replace(',^id_,', '', $_id_objet);
}
// Exceptions standards (historique)
global $table_logos;
$table_logos = array(
'id_article' => 'art',
'id_auteur' => 'aut',
# 'id_breve' => 'breve',
# 'id_mot' => 'mot',
'id_syndic'=> 'site',
'id_rubrique' => 'rub'
);
'id_article' => 'art',
'id_auteur' => 'aut',
# 'id_breve' => 'breve',
# 'id_mot' => 'mot',
'id_syndic'=> 'site',
'id_rubrique' => 'rub'
);
?>
......@@ -282,17 +282,13 @@ function fichier_copie_locale($source) {
return $source;
}
$extension = "";
// Chercher d'abord le doc dans la table des documents, pour se baser sur son type reel
$t = spip_fetch_array(spip_query("SELECT id_type FROM spip_documents WHERE fichier=" . _q($source) . " AND distant='oui'"));
if ($t) {
$t = spip_fetch_array(spip_query("SELECT extension FROM spip_types_documents WHERE id_type=".$t['id_type']));
if ($t)
$extension = $t['extension'];
}
$s = spip_query("SELECT extension FROM spip_documents WHERE fichier=" . _q($source) . " AND distant='oui'");
if ($t = spip_fetch_array($s)) {
$extension = $t['extension'];
// si la source n'est pas dans la table des documents, on regarde si son extension est connue et autorisee
if (!strlen($extension)) {
} else {
$path_parts = pathinfo($source);
if (isset($path_parts['extension']) && strlen($path_parts['extension'])){
// verifier que c'est un type autorise
......@@ -301,8 +297,8 @@ function fichier_copie_locale($source) {
$extension = $t['extension'];
}
}
if (strlen($extension))
if (isset($extension))
return nom_fichier_copie_locale($source, $extension);
}
......@@ -337,32 +333,30 @@ function recuperer_infos_distantes($source, $max=0) {
$t = null;
if (($mime_type == 'text/plain' OR $mime_type == '')
AND preg_match(',\.([a-z0-9]+)(\?.*)?$,', $source, $rext)) {
$t = spip_fetch_array(spip_query("SELECT id_type,extension FROM spip_types_documents WHERE extension=" . _q($rext[1])));
$t = spip_fetch_array(spip_query("SELECT extension FROM spip_types_documents WHERE extension=" . _q($rext[1])));
}
// Autre mime/type (ou text/plain avec fichier d'extension inconnue)
if (!$t)
$t = spip_fetch_array(spip_query("SELECT id_type,extension FROM spip_types_documents WHERE mime_type=" . _q($mime_type)));
$t = spip_fetch_array(spip_query("SELECT extension FROM spip_types_documents WHERE mime_type=" . _q($mime_type)));
// Toujours rien ? (ex: audio/x-ogg au lieu de application/ogg)
// On essaie de nouveau avec l'extension
if (!$t
AND $mime_type != 'text/plain'
AND preg_match(',\.([a-z0-9]+)(\?.*)?$,', $source, $rext)) {
$t = spip_fetch_array(spip_query("SELECT id_type,extension FROM spip_types_documents WHERE extension=" . _q($rext[1])));
$t = spip_fetch_array(spip_query("SELECT extension FROM spip_types_documents WHERE extension=" . _q($rext[1])));
}
if ($t) {
spip_log("mime-type $mime_type ok, extension ".$t['extension']);
$a['id_type'] = $t['id_type'];
$a['extension'] = $t['extension'];
} else {
# par defaut on retombe sur '.bin' si c'est autorise
spip_log("mime-type $mime_type inconnu");
$t = spip_fetch_array(spip_query("SELECT id_type,extension FROM spip_types_documents WHERE extension='bin'"));
$t = spip_fetch_array(spip_query("SELECT extension FROM spip_types_documents WHERE extension='bin'"));
if (!$t) return false;
$a['id_type'] = $t['id_type'];
$a['extension'] = $t['extension'];
}
......
......@@ -29,11 +29,11 @@ function inc_documenter_dist(
if (is_int($doc)) {
if ($ancre == 'portfolio') {
$lies = spip_query("SELECT docs.*,l.id_$type,l.vu FROM spip_documents AS docs, spip_documents_".$type."s AS l, spip_types_documents AS lestypes WHERE l.id_$type=$doc AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension IN ('gif', 'jpg', 'png') ORDER BY 0+docs.titre, docs.date");
$lies = spip_query("SELECT docs.*,l.id_$type,l.vu FROM spip_documents AS docs, spip_documents_".$type."s AS l WHERE l.id_$type=$doc AND l.id_document=docs.id_document AND docs.mode='document' AND docs.extension IN ('gif', 'jpg', 'png') ORDER BY 0+docs.titre, docs.date");
$toile = 'toile_claire';
$couleur = 'bordure_claire_';
} else {
$lies = spip_query("SELECT docs.*,l.id_$type,l.vu FROM spip_documents AS docs, spip_documents_".$type."s AS l,spip_types_documents AS lestypes WHERE l.id_$type=$doc AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension NOT IN ('gif', 'jpg', 'png') ORDER BY 0+docs.titre, docs.date");
$lies = spip_query("SELECT docs.*,l.id_$type,l.vu FROM spip_documents AS docs, spip_documents_".$type."s AS l WHERE l.id_$type=$doc AND l.id_document=docs.id_document AND docs.mode='document' AND docs.extension NOT IN ('gif', 'jpg', 'png') ORDER BY 0+docs.titre, docs.date");
$toile = 'toile_gris_fort';
$couleur = 'bordure_grise_';
}
......
......@@ -30,12 +30,18 @@ function set_spip_doc($fichier) {
// donne le chemin complet du fichier
// http://doc.spip.org/@get_spip_doc
function get_spip_doc($fichier) {
// fichier distant
if (preg_match(',^\w+://,', $fichier))
return $fichier;
else
return (strpos($fichier, _DIR_IMG) === false)
? _DIR_IMG . $fichier
: $fichier;
// gestion d'erreurs, fichier=''
if (!strlen($fichier))
return false;
// fichier normal
return (strpos($fichier, _DIR_IMG) === false)
? _DIR_IMG . $fichier
: $fichier;
}
// http://doc.spip.org/@generer_url_document_dist
......@@ -107,10 +113,7 @@ function image_pattern($vignette) {
// http://doc.spip.org/@document_et_vignette
function document_et_vignette($document, $url, $portfolio=false) {
// a supprimer avec spip_types_documents
$extension = spip_fetch_array(spip_query("SELECT extension, mime_type FROM spip_types_documents WHERE id_type=".$document['id_type']));
$mime = $extension['mime_type'];
$extension = $extension['extension'];
$extension = $document['extension'];
$vignette = $document['id_vignette'];
if ($vignette)
......@@ -153,8 +156,10 @@ function document_et_vignette($document, $url, $portfolio=false) {
if (!$url)
return $image;
else
return "<a href='$url'\n\ttype='$mime'>$image</a>";
else {
$t = spip_fetch_array(spip_query("SELECT mime_type FROM spip_types_documents WHERE extension="._q($document['extension'])));
return "<a href='$url'\n\ttype='".$t['mime_type']."'>$image</a>";
}
}
......@@ -286,7 +291,7 @@ function afficher_case_document($id_document, $id, $script, $type, $deplier=fals
//$document = spip_fetch_array(spip_query("SELECT * FROM spip_documents WHERE id_document = " . intval($id_document)));
$id_vignette = $document['id_vignette'];
$id_type = $document['id_type'];
$extension = $document['extension'];
$titre = $document['titre'];
$descriptif = $document['descriptif'];
$url = generer_url_document($id_document);
......@@ -302,9 +307,8 @@ function afficher_case_document($id_document, $id, $script, $type, $deplier=fals
$cadre = strlen($titre) ? $titre : basename($document['fichier']);
$result = spip_query("SELECT titre,inclus,extension FROM spip_types_documents WHERE id_type=$id_type");
if ($letype = @spip_fetch_array($result)) {
$type_extension = $letype['extension'];
$result = spip_query("SELECT titre,inclus FROM spip_types_documents WHERE extension="._q($extension));
if ($letype = spip_fetch_array($result)) {
$type_inclus = $letype['inclus'];
$type_titre = $letype['titre'];
}
......@@ -315,19 +319,6 @@ function afficher_case_document($id_document, $id, $script, $type, $deplier=fals
$ret = "";
if ($mode == 'document') {
# 'extension', a ajouter dans la base quand on supprimera spip_types_documents
switch ($id_type) {
case 1:
$document['extension'] = "jpg";
break;
case 2:
$document['extension'] = "png";
break;
case 3:
$document['extension'] = "gif";
break;
}
$ret .= "<a id='document$id_document' name='document$id_document'></a>\n";
$ret .= debut_cadre_enfonce("doc-24.gif", true, "", lignes_longues(typo($cadre),20));
......@@ -354,7 +345,7 @@ function afficher_case_document($id_document, $id, $script, $type, $deplier=fals
. '</div>'
. "\n<div class='verdana1' style='text-align: center; color: black;'>\n"
. ($type_titre ? $type_titre :
( _T('info_document').' '.majuscules($type_extension)))
( _T('info_document').' '.majuscules($extension)))
. "</div>";
// Affichage du raccourci <doc...> correspondant
......
......@@ -375,8 +375,7 @@ function indexer_contenu_document ($row, $min_long=3) {
global $extracteur;
if ($row['mode'] == 'vignette') return;
$extension = spip_fetch_array(spip_query("SELECT extension FROM spip_types_documents WHERE id_type = ".$row['id_type']));
$extension = $extension['extension'];
$extension = $row['extension'];
// Voir si on sait lire le contenu (eventuellement en chargeant le
// fichier extract/pdf.php dans find_in_path() )
......
......@@ -75,7 +75,7 @@ function inc_legender_dist($id_document, $document, $script, $type, $id, $ancre,
array('largeur_vignette' => $document['largeur'],
'hauteur_vignette' => $document['hauteur']));
else
$contenu .= taille_en_octets($document['taille']) . ' - ';
$contenu .= taille_en_octets($document['taille']);
if ($date) $contenu .= "<br />\n" . affdate($date);
......@@ -186,8 +186,8 @@ function vignette_formulaire_legender($id_document, $document, $script, $type, $
function formulaire_taille($document) {
// (on ne le propose pas pour les images qu'on sait
// lire, id_type<=3), sauf bug, ou document distant
if ($document['id_type'] <= 3
// lire : gif jpg png), sauf bug, ou document distant
if (in_array($document['extension'], array('gif','jpg','png'))
AND $document['hauteur']
AND $document['largeur']
AND $document['distant']!='oui')
......@@ -195,10 +195,10 @@ function formulaire_taille($document) {
$id_document = $document['id_document'];
// Donnees sur le type de document
$t = @spip_abstract_fetsel('inclus,extension',
'spip_types_documents', "id_type=".$document['id_type']);
$extension = $document['extension'];
$t = spip_abstract_fetsel('inclus',
'spip_types_documents', "extension="._q($extension));
$type_inclus = $t['inclus'];
$extension = $t['extension'];
# TODO -- pour le MP3 "l x h pixels" ne va pas
if (($type_inclus == "embed" OR $type_inclus == "image")
......
......@@ -82,7 +82,6 @@ function inc_tourner_dist($id_document, $document, $script, $flag, $type)
// http://doc.spip.org/@boutons_rotateurs
function boutons_rotateurs($document, $type, $id, $id_document, $script) {
global $spip_lang_right;
static $ftype = array(1 => 'jpg', 2 => 'png', 3 => 'gif');
$process = $GLOBALS['meta']['image_process'];
......@@ -91,8 +90,8 @@ function boutons_rotateurs($document, $type, $id, $id_document, $script) {
// n'est pas distante, qu'elle est bien presente dans IMG/
// qu'elle n'a pas de vignette perso ; et qu'on a la bibli !
if ($document['distant']!='oui'
AND isset($ftype[$document['id_type']])
AND (strpos($GLOBALS['meta']['formats_graphiques'], $ftype[$document['id_type']])!==false)
AND in_array($document['extension'], array('gif', 'jpg', 'png'))
AND (strpos($GLOBALS['meta']['formats_graphiques'], $document['extension'])!==false)
AND ($process == 'imagick'
OR $process == 'gd2'
OR $process == 'convert'
......
......@@ -299,7 +299,7 @@ $liste_des_statuts = array(
// (utilise pour les modifs de la base de donnees)
// version de la base
$spip_version = 1.937;
$spip_version = 1.938;
// version de spip en chaine
// et en numerique a incrementer sur les evolutions qui cassent la compatibilite descendante
......
......@@ -361,12 +361,12 @@ function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier
if (!$id_document) return '';
if ($doubdoc) $doublons["documents"] .= ','.$id_document;
if (!($row = spip_abstract_select(array('id_type', 'id_vignette', 'fichier', 'mode'), array('spip_documents'), array("id_document = $id_document"))))
if (!($row = spip_abstract_select(array('extension', 'id_vignette', 'fichier', 'mode'), array('spip_documents'), array("id_document = $id_document"))))
// pas de document. Ne devrait pas arriver
return '';
$row = spip_abstract_fetch($row);
$id_type = $row['id_type'];
$extension = $row['extension'];
$id_vignette = $row['id_vignette'];
$fichier = get_spip_doc($row['fichier']);
$mode = $row['mode'];
......@@ -393,14 +393,12 @@ function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier
$y = intval($r[2]);
}
// Retrouver l'extension et le type mime
// Retrouver le type mime
$ex = spip_abstract_fetch(spip_abstract_select(
array('extension', 'mime_type'),
array('mime_type'),
array('spip_types_documents'),
array("id_type = " . intval($id_type))));
$extension = $ex['extension'];
array("extension = " . _q($extension))));
$mime = $ex['mime_type'];
if (!$extension) $extension = 'txt';
if ($logo AND @file_exists($logo)) {
if ($x OR $y)
......
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