diff --git a/ecrire/action/supprimer.php b/ecrire/action/supprimer.php index de7ad5d9b92e74c2fcf05432a17c1c4a1520ae70..c3b19968ac3f1e6afb782ea83d32eaa12a336a67 100644 --- a/ecrire/action/supprimer.php +++ b/ecrire/action/supprimer.php @@ -72,7 +72,6 @@ function action_supprimer_rubrique($id_rubrique) // invalider les caches marques de cette rubrique include_spip('inc/invalideur'); suivre_invalideur("id='id_rubrique/$id_rubrique'"); - } // http://doc.spip.org/@supprimer_document_et_vignette @@ -80,21 +79,18 @@ function supprimer_document_et_vignette($arg) { $result = spip_query("SELECT id_vignette, fichier FROM spip_documents WHERE id_document=$arg"); if ($row = spip_fetch_array($result)) { - $fichier = $row['fichier']; - $id_vignette = $row['id_vignette']; + @unlink(get_spip_doc($row['fichier'])); spip_query("DELETE FROM spip_documents WHERE id_document=$arg"); spip_query("UPDATE spip_documents SET id_vignette=0 WHERE id_vignette=$arg"); spip_query("DELETE FROM spip_documents_articles WHERE id_document=$arg"); spip_query("DELETE FROM spip_documents_rubriques WHERE id_document=$arg"); spip_query("DELETE FROM spip_documents_breves WHERE id_document=$arg"); - @unlink($fichier); - + $id_vignette = $row['id_vignette']; if ($id_vignette > 0) { - $result = spip_query("SELECT id_vignette, fichier FROM spip_documents WHERE id_document=$id_vignette"); + $result = spip_query("SELECT fichier FROM spip_documents WHERE id_document=$id_vignette"); if ($row = spip_fetch_array($result)) { - $fichier = $row['fichier']; - @unlink($fichier); + @unlink(get_spip_doc($row['fichier'])); } spip_query("DELETE FROM spip_documents WHERE id_document=$id_vignette"); spip_query("DELETE FROM spip_documents_articles WHERE id_document=$id_vignette"); diff --git a/ecrire/action/tourner.php b/ecrire/action/tourner.php index 1febc33ab7b635a8fca1eeab7bd0f8eebc6c234c..c68076978b3237088c23f89a9eadde24771512e0 100644 --- a/ecrire/action/tourner.php +++ b/ecrire/action/tourner.php @@ -38,7 +38,7 @@ function action_tourner_post($r) // Fichier destination : on essaie toujours de repartir de l'original $var_rot = $r[2]; - $src = copie_locale($row['fichier']); + $src = copie_locale(get_spip_doc($row['fichier'])); if (preg_match(',^(.*)-r(90|180|270)\.([^.]+)$,', $src, $match)) { $effacer = $src; $src = $match[1].'.'.$match[3]; @@ -92,7 +92,8 @@ function action_tourner_post($r) // succes ! if ($largeur>0 AND $hauteur>0) { - spip_query("UPDATE spip_documents SET fichier='".addslashes($dest)."', largeur=$largeur, hauteur=$hauteur WHERE id_document=$arg"); + $f = "'" . addslashes(set_spip_doc($dest)) . "'"; + spip_query("UPDATE spip_documents SET fichier=$f, largeur=$largeur, hauteur=$hauteur WHERE id_document=$arg"); if ($effacer) { spip_log("j'efface $effacer"); @unlink($effacer); diff --git a/ecrire/inc/ajouter_documents.php b/ecrire/inc/ajouter_documents.php index 988aeeebf874ef7a5f9403ce85cbd82e216ea20f..470619e1c64902ead4702eddb6445d41e2ed3c73 100644 --- a/ecrire/inc/ajouter_documents.php +++ b/ecrire/inc/ajouter_documents.php @@ -57,7 +57,7 @@ function inc_ajouter_documents_dist ($source, $nom_envoye, $type_lien, $id_lien, spip_log("Echec du lien vers le document $source, abandon"); return; } - } else {$distant = 'non'; + } else {$distant = 'non'; // tester le type de document : // - interdit a l'upload ? @@ -229,8 +229,13 @@ function inc_ajouter_documents_dist ($source, $nom_envoye, $type_lien, $id_lien, $update = "mode='$mode', "; } + // Pour les fichiers distants remettre l'URL de base + $path = ($distant == 'oui') + ? _q($source) + : ("'" . addslashes(set_spip_doc($fichier)) . "'"); + // Mise a jour des donnees - spip_query("UPDATE spip_documents SET $update taille='$taille', largeur='$largeur', hauteur='$hauteur', fichier='$fichier' WHERE id_document=$id_document"); + spip_query("UPDATE spip_documents SET $update taille='$taille', largeur='$largeur', hauteur='$hauteur', fichier=$path WHERE id_document=$id_document"); if ($id_document_lie) { spip_query("UPDATE spip_documents SET id_vignette=$id_document WHERE id_document=$id_document_lie"); @@ -240,10 +245,6 @@ function inc_ajouter_documents_dist ($source, $nom_envoye, $type_lien, $id_lien, else $documents_actifs[] = $id_document; - // Pour les fichiers distants remettre l'URL de base - if ($distant == 'oui') - spip_query("UPDATE spip_documents SET fichier=" . _q($source) . " WHERE id_document = $id_document"); - // Demander l'indexation du document include_spip('inc/indexation'); marquer_indexer('spip_documents', $id_document); @@ -253,7 +254,6 @@ function inc_ajouter_documents_dist ($source, $nom_envoye, $type_lien, $id_lien, - // http://doc.spip.org/@verifier_compactes function verifier_compactes($zip) { if (!$list = $zip->listContent()) return array(); diff --git a/ecrire/inc/distant.php b/ecrire/inc/distant.php index 72fa921fe5d394e336d9efd077527fe48787a54d..24fad465c6e7055a6626010a714eea774ad72d03 100644 --- a/ecrire/inc/distant.php +++ b/ecrire/inc/distant.php @@ -40,19 +40,16 @@ function copie_locale($source, $mode='auto') { if (($mode=='auto' AND !@file_exists(_DIR_RACINE.$local)) OR $mode=='force') { $contenu = recuperer_page($source); - if ($contenu) { - ecrire_fichier(_DIR_RACINE.$local, $contenu); - - // signaler au moteur de recherche qu'il peut reindexer ce doc - $id_document = spip_fetch_array(spip_query("SELECT id_document FROM spip_documents WHERE fichier=" . _q($source))); - $id_document = $id_document['id_document']; - if ($id_document) { - include_spip('inc/indexation'); - marquer_indexer('spip_documents', $id_document); - } + if (!$contenu) return false; + ecrire_fichier(_DIR_RACINE.$local, $contenu); + + // signaler au moteur de recherche qu'il peut reindexer ce doc + $id_document = spip_fetch_array(spip_query("SELECT id_document FROM spip_documents WHERE fichier=" . _q($source))); + $id_document = $id_document['id_document']; + if ($id_document) { + include_spip('inc/indexation'); + marquer_indexer('spip_documents', $id_document); } - else - return false; } } diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php index 032948dae4d54247543ac336e95ed42ff6670d2f..9c6a82c09f4dcab2440621361284550788c9f229 100644 --- a/ecrire/inc/documents.php +++ b/ecrire/inc/documents.php @@ -62,8 +62,7 @@ function vignette_par_defaut($ext, $size=true, $loop = true) { // http://doc.spip.org/@image_pattern function image_pattern($vignette) { return "<img src='" - . _DIR_RACINE - . $vignette['fichier']."' + . get_spip_doc($vignette['fichier'])."' alt=' ' width='".$vignette['largeur']."' height='".$vignette['hauteur']."' />"; @@ -84,7 +83,7 @@ function document_et_vignette($document, $url, $portfolio=false) { $image = image_pattern($vignette); } else { include_spip('inc/filtres'); - $image = filtrer('image_reduire', _DIR_RACINE .$vignette['fichier'], 120, 110, false, true); + $image = filtrer('image_reduire', get_spip_doc($vignette['fichier']), 120, 110, false, true); } } else if (strpos($GLOBALS['meta']['formats_graphiques'], $extension)!==false @@ -93,7 +92,7 @@ function document_et_vignette($document, $url, $portfolio=false) { include_spip('inc/filtres'); if ($document['distant'] != 'oui') - $image = _DIR_RACINE.$document['fichier']; + $image = get_spip_doc($document['fichier']); if ($portfolio) { $image = filtrer('image_reduire', $image, 110, 120, false, true); @@ -257,7 +256,7 @@ function afficher_case_document($id_document, $id, $script, $type, $deplier=fals $cadre = strlen($titre) ? $titre : basename($document['fichier']); - $result = spip_query("SELECT * FROM spip_types_documents WHERE id_type=$id_type"); + $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']; $type_inclus = $letype['inclus']; diff --git a/ecrire/inc/revisions.php b/ecrire/inc/revisions.php index c9b1a2e83d8a879e591b8edda7b72a16c5261ea5..902892ec2074f19548e75c69b8442db4f4eebaa9 100644 --- a/ecrire/inc/revisions.php +++ b/ecrire/inc/revisions.php @@ -77,7 +77,7 @@ function ajouter_fragments($id_article, $id_version, $fragments) { if ($row = spip_fetch_array($result)) { $fragment = $row['fragment']; $version_min = $row['version_min']; - if ($row['compress'] > 0) $fragment = gzuncompress($fragment); + if ($row['compress'] > 0) $fragment = @gzuncompress($fragment); $fragment = unserialize($fragment); if (is_array($fragment)) { unset($fragment[$id_version]); diff --git a/ecrire/inc/tourner.php b/ecrire/inc/tourner.php index 246501495a19cda80b44d7739256ad3fd5e56c5a..2584967750f7cb25c5d6d2cf95910ec3394c78de 100644 --- a/ecrire/inc/tourner.php +++ b/ecrire/inc/tourner.php @@ -47,13 +47,13 @@ function inc_tourner_dist($id_document, $document, $script, $flag, $type) // Indiquer les documents manquants avec un panneau de warning if ($document['distant'] != 'oui') { - if (!@file_exists(_DIR_RACINE.$document['fichier'])) { + if (!@file_exists(get_spip_doc($document['fichier']))){ $c = _T('fichier_introuvable', array('fichier'=>basename($document['fichier']))); $res = "<img src='" . _DIR_IMG_PACK . "warning-24.gif'" ."\n\tstyle='float: right;'\n\talt=\"$c\"\n\ttitle=\"$c\" />"; - } else if ($flag) - $res = boutons_rotateurs($document, $type, $id, $id_document,$script, $id_vignette); + } else if ($flag AND !$id_vignette) + $res = boutons_rotateurs($document, $type, $id, $id_document,$script); $boite = ''; @@ -76,7 +76,7 @@ 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, $id_vignette) { +function boutons_rotateurs($document, $type, $id, $id_document, $script) { global $spip_lang_right; static $ftype = array(1 => 'jpg', 2 => 'png', 3 => 'gif'); @@ -86,14 +86,14 @@ function boutons_rotateurs($document, $type, $id, $id_document, $script, $id_vig // si c'est une image, qu'on sait la faire tourner, qu'elle // 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 !$id_vignette + if ($document['distant']!='oui' AND isset($ftype[$document['id_type']]) AND (strpos($GLOBALS['meta']['formats_graphiques'], $ftype[$document['id_type']])!==false) AND ($process == 'imagick' OR $process == 'gd2' OR $process == 'convert' OR $process == 'netpbm') - AND @file_exists(_DIR_RACINE.$document['fichier']) + AND @file_exists(get_spip_doc($document['fichier'])) ) { return "\n<div class='verdana1' style='float: $spip_lang_right; text-align: $spip_lang_right;'>" . diff --git a/ecrire/inc/urls.php b/ecrire/inc/urls.php index f736670e32177f2ea020908ba60c92b83f5b1996..8397e4a7cc08cf9f58fc5154bf17e20d2c05a71d 100644 --- a/ecrire/inc/urls.php +++ b/ecrire/inc/urls.php @@ -85,7 +85,7 @@ function generer_url_ecrire_document($id_document, $statut='') { return $row['fichier']; } else { if (($GLOBALS['meta']["creer_htaccess"]) != 'oui') - return _DIR_RACINE . ($row['fichier']); + return get_spip_doc($row['fichier']); else return generer_url_action('autoriser', "arg=$id_document"); } } diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index df732aff94c4a6184a51418c9d21b570f82519ea..c29839f194dfe2421a70801e059a38be2ca8a205 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -235,6 +235,12 @@ function _q($a) { return (is_int($a)) ? strval($a) : ("'" . addslashes($a) . "'"); } +function set_spip_doc($fichier) {return $fichier;} +function get_spip_doc($fichier) {return _DIR_RACINE . $fichier;} +// pour bientot: +//function set_spip_doc($fichier) {return substr($fichier, strlen(_DIR_IMG));} +//function get_spip_doc($fichier) {return _DIR_IMG . $fichier;} + // Renvoie le _GET ou le _POST emis par l'utilisateur // ou pioche dans $c si c'est un array() // http://doc.spip.org/@_request diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php index 18e0cc46291ecd0516d92a6ac299a57eebb13692..6a9e8a4409e25ba99590271a114a02ee7d1c9aa5 100644 --- a/ecrire/public/composer.php +++ b/ecrire/public/composer.php @@ -438,8 +438,7 @@ function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier // flag_fichier : seul le fichier est demande if ($flag_fichier) - return preg_replace(',^' . preg_quote(_DIR_IMG).',', '', - extraire_attribut($logo, 'src')); + return substr(extraire_attribut($logo, 'src'), strlen(_DIR_IMG)); // Calculer le code html complet (cf. calcule_logo) diff --git a/ecrire/urls/html.php b/ecrire/urls/html.php index 1313e3ee3614b3b2d2ceace40640e001e1047594..d8e197cd53f26c7285822e6805f2e5533b4c1ada 100644 --- a/ecrire/urls/html.php +++ b/ecrire/urls/html.php @@ -73,7 +73,7 @@ function generer_url_document($id_document) { if (($GLOBALS['meta']["creer_htaccess"]) == 'oui') return generer_url_action('autoriser', "arg=$id_document", true); $row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document")); - if ($row) return ($row['fichier']); + if ($row) return get_spip_doc($row['fichier']); return ''; } diff --git a/ecrire/urls/page.php b/ecrire/urls/page.php index 959b2f113e7b772a65e2eeb76b5cb3402ebfefba..a7915bfb4f619fa069143de7c0c6bb18c5d73337 100644 --- a/ecrire/urls/page.php +++ b/ecrire/urls/page.php @@ -68,7 +68,7 @@ function generer_url_document($id_document) { if (($GLOBALS['meta']["creer_htaccess"]) == 'oui') return generer_url_action('autoriser',"arg=$id_document", true); $row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document")); - if ($row) return ($row['fichier']); + if ($row) return get_spip_doc($row['fichier']); return ''; } diff --git a/ecrire/urls/propres.php b/ecrire/urls/propres.php index 375511817ebe8dce3df3602d5741468efa427f88..d36c53940c429293f03de85419e19ed2cb6d95bf 100644 --- a/ecrire/urls/propres.php +++ b/ecrire/urls/propres.php @@ -202,7 +202,7 @@ function generer_url_document($id_document) { if (($GLOBALS['meta']["creer_htaccess"]) == 'oui') return generer_url_action('autoriser',"arg=$id_document", true); $row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document")); - if ($row) return ($row['fichier']); + if ($row) return get_spip_doc($row['fichier']); return ''; } diff --git a/ecrire/urls/standard.php b/ecrire/urls/standard.php index 5b409e08f54b2a39771791707b90a923836a0aa3..af57ffb6f9217710a0fefcbcf5e4309f541567ee 100644 --- a/ecrire/urls/standard.php +++ b/ecrire/urls/standard.php @@ -53,7 +53,7 @@ function generer_url_document($id_document) { if (($GLOBALS['meta']["creer_htaccess"]) == 'oui') return generer_url_action('autoriser',"arg=$id_document", true); $row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document")); - if ($row) return ($row['fichier']); + if ($row) return get_spip_doc($row['fichier']); return ''; }