From 798c3464afda73f4a851e815c2199e0eaaf9cffc Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Sat, 24 Mar 2007 16:00:38 +0000 Subject: [PATCH] suite de [8926], introduit en particulier #FICHIER* qui donne le chemin du document a partir de _DIR_IMG --- .gitattributes | 2 +- .../{autoriser.php => acceder_document.php} | 4 +-- ecrire/inc/ajouter_documents.php | 7 +--- ecrire/inc/documents.php | 36 +++++++++++++++++++ ecrire/inc/urls.php | 15 ++------ ecrire/inc/utils.php | 8 ----- ecrire/public/interfaces.php | 1 + ecrire/urls/html.php | 9 ++--- ecrire/urls/page.php | 9 ++--- ecrire/urls/propres.php | 9 ++--- ecrire/urls/standard.php | 9 ++--- 11 files changed, 51 insertions(+), 58 deletions(-) rename ecrire/action/{autoriser.php => acceder_document.php} (97%) diff --git a/.gitattributes b/.gitattributes index 39521284b3..f0caca3873 100644 --- a/.gitattributes +++ b/.gitattributes @@ -332,8 +332,8 @@ dist/vignettes/xls.png -text dist/vignettes/xml.png -text dist/vignettes/zip.png -text dist/win_width.htc -text +ecrire/action/acceder_document.php -text ecrire/action/activer_plugins.php -text -ecrire/action/autoriser.php -text ecrire/action/converser.php -text ecrire/action/dater.php -text ecrire/action/desinstaller_plugin.php -text diff --git a/ecrire/action/autoriser.php b/ecrire/action/acceder_document.php similarity index 97% rename from ecrire/action/autoriser.php rename to ecrire/action/acceder_document.php index 67a0e6f5fa..3ae875359f 100644 --- a/ecrire/action/autoriser.php +++ b/ecrire/action/acceder_document.php @@ -21,8 +21,8 @@ include_spip('base/abstract_sql'); // il verifie soit que le demandeur est authentifie // soit que le fichier est joint a au moins 1 article, breve ou rubrique publie -// http://doc.spip.org/@action_autoriser_dist -function action_autoriser_dist() +// http://doc.spip.org/@action_acceder_document_dist +function action_acceder_document_dist() { global $auteur_session; // positionne par verifier_visiteur dans inc_version if ($auteur_session['statut'] == '0minirezo' diff --git a/ecrire/inc/ajouter_documents.php b/ecrire/inc/ajouter_documents.php index 470619e1c6..340127439a 100644 --- a/ecrire/inc/ajouter_documents.php +++ b/ecrire/inc/ajouter_documents.php @@ -229,13 +229,8 @@ 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=$path WHERE id_document=$id_document"); + spip_query("UPDATE spip_documents SET $update taille='$taille', largeur='$largeur', hauteur='$hauteur', fichier="._q(set_spip_doc($fichier))." 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"); diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php index 9c6a82c09f..cf9a6f5bf5 100644 --- a/ecrire/inc/documents.php +++ b/ecrire/inc/documents.php @@ -16,6 +16,42 @@ include_spip('inc/actions'); // *action_auteur et determine_upload include_spip('inc/date'); include_spip('base/abstract_sql'); + +// donne le chemin du fichier relatif a _DIR_IMG +// pour stockage 'tel quel' dans la base de donnees +// http://doc.spip.org/@set_spip_doc +function set_spip_doc($fichier) { + if (strpos(_DIR_IMG, $fichier) === 0) + return substr($fichier, strlen(_DIR_IMG)); + else + return $fichier; // ex: fichier distant +} + +// donne le chemin complet du fichier +// http://doc.spip.org/@get_spip_doc +function get_spip_doc($fichier) { + if (preg_match(',^\w+://,', $fichier)) + return $fichier; + else + return (strpos(_DIR_IMG, $fichier) === false) + ? _DIR_IMG . $fichier + : $fichier; +} + +function generer_url_document_dist($id_document) { + if (intval($id_document) <= 0) + return ''; + $row = spip_fetch_array(spip_query("SELECT fichier,distant FROM spip_documents WHERE id_document = $id_document")); + if ($row) { + if ($GLOBALS['meta']["creer_htaccess"] == 'oui' + AND $row['distant'] == 'oui') + return generer_url_action('acceder_document', "arg=$id_document", true); + else + return get_spip_doc($row['fichier']); + } + return ''; +} + // // Vignette pour les documents lies // diff --git a/ecrire/inc/urls.php b/ecrire/inc/urls.php index 8397e4a7cc..5f819339f5 100644 --- a/ecrire/inc/urls.php +++ b/ecrire/inc/urls.php @@ -77,19 +77,8 @@ function generer_url_ecrire_forum($id_forum, $statut='') { // http://doc.spip.org/@generer_url_ecrire_document function generer_url_ecrire_document($id_document, $statut='') { - if (intval($id_document) <= 0) - return ''; - $row = @spip_fetch_array(spip_query("SELECT fichier,distant FROM spip_documents WHERE id_document = $id_document")); - if ($row) { - if ($row['distant'] == 'oui') { - return $row['fichier']; - } else { - if (($GLOBALS['meta']["creer_htaccess"]) != 'oui') - return get_spip_doc($row['fichier']); - else return generer_url_action('autoriser', "arg=$id_document"); - } - } - + include_spip('inc/documents'); + return generer_url_document_dist($id_document); } // http://doc.spip.org/@generer_url_ecrire_statistiques diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index 758eb6ed34..df732aff94 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -235,14 +235,6 @@ function _q($a) { return (is_int($a)) ? strval($a) : ("'" . addslashes($a) . "'"); } -// http://doc.spip.org/@set_spip_doc -//function set_spip_doc($fichier) {return $fichier;} -// http://doc.spip.org/@get_spip_doc -//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/interfaces.php b/ecrire/public/interfaces.php index 98dc2b7c2f..4a8f900d3d 100644 --- a/ecrire/public/interfaces.php +++ b/ecrire/public/interfaces.php @@ -275,6 +275,7 @@ $table_des_traitements['DATE_MODIF'][]= 'vider_date(%s)'; $table_des_traitements['DATE_NOUVEAUTES'][]= 'vider_date(%s)'; $table_des_traitements['DATE_REDAC'][]= 'vider_date(%s)'; $table_des_traitements['DESCRIPTIF'][]= 'propre(%s)'; +$table_des_traitements['FICHIER']['documents']= 'get_spip_doc(%s)'; $table_des_traitements['LIEN_TITRE'][]= 'typo(%s)'; $table_des_traitements['LIEN_URL'][]= 'vider_url(%s)'; $table_des_traitements['MESSAGE'][]= 'propre(%s)'; diff --git a/ecrire/urls/html.php b/ecrire/urls/html.php index d8e197cd53..c6bd0cc9cb 100644 --- a/ecrire/urls/html.php +++ b/ecrire/urls/html.php @@ -68,13 +68,8 @@ function generer_url_auteur($id_auteur) { // http://doc.spip.org/@generer_url_document function generer_url_document($id_document) { - if (intval($id_document) <= 0) - return ''; - 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 get_spip_doc($row['fichier']); - return ''; + include_spip('inc/documents'); + return generer_url_document_dist($id_document); } diff --git a/ecrire/urls/page.php b/ecrire/urls/page.php index a7915bfb4f..bbb6147fed 100644 --- a/ecrire/urls/page.php +++ b/ecrire/urls/page.php @@ -63,13 +63,8 @@ function generer_url_auteur($id_auteur) { // http://doc.spip.org/@generer_url_document function generer_url_document($id_document) { - if (($id_document = intval($id_document)) <= 0) - return ''; - 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 get_spip_doc($row['fichier']); - return ''; + include_spip('inc/documents'); + return generer_url_document_dist($id_document); } // http://doc.spip.org/@recuperer_parametres_url diff --git a/ecrire/urls/propres.php b/ecrire/urls/propres.php index d36c53940c..16a4324c1e 100644 --- a/ecrire/urls/propres.php +++ b/ecrire/urls/propres.php @@ -197,13 +197,8 @@ function generer_url_site($id_syndic) { // http://doc.spip.org/@generer_url_document function generer_url_document($id_document) { - if (($id_document = intval($id_document)) <= 0) - return ''; - 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 get_spip_doc($row['fichier']); - return ''; + include_spip('inc/documents'); + return generer_url_document_dist($id_document); } // http://doc.spip.org/@recuperer_parametres_url diff --git a/ecrire/urls/standard.php b/ecrire/urls/standard.php index af57ffb6f9..f1b2e18c16 100644 --- a/ecrire/urls/standard.php +++ b/ecrire/urls/standard.php @@ -48,13 +48,8 @@ function generer_url_auteur($id_auteur) { // http://doc.spip.org/@generer_url_document function generer_url_document($id_document) { - if (intval($id_document) <= 0) - return ''; - 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 get_spip_doc($row['fichier']); - return ''; + include_spip('inc/documents'); + return generer_url_document_dist($id_document); } // http://doc.spip.org/@recuperer_parametres_url -- GitLab