Skip to content
Extraits de code Groupes Projets
Valider 8b6f1112 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

reparer la 'suppression' des documents utilises a de multiples endroits

dans ce cas la suppression n'est qu'une desassociation
la fonction supprimer_document est externalisee pour simplifier la surcharge
parent d05576aa
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -93,6 +93,7 @@ ecrire/action/referencer_traduction.php -text ...@@ -93,6 +93,7 @@ ecrire/action/referencer_traduction.php -text
ecrire/action/regler_moderation.php -text ecrire/action/regler_moderation.php -text
ecrire/action/reorganiser.php -text ecrire/action/reorganiser.php -text
ecrire/action/supprimer.php -text ecrire/action/supprimer.php -text
ecrire/action/supprimer_document.php -text
ecrire/action/supprimer_traduction.php -text ecrire/action/supprimer_traduction.php -text
ecrire/action/tester.php -text ecrire/action/tester.php -text
ecrire/action/tester_taille.php -text ecrire/action/tester_taille.php -text
......
...@@ -39,39 +39,12 @@ function supprimer_lien_document($id_document, $objet, $id_objet) { ...@@ -39,39 +39,12 @@ function supprimer_lien_document($id_document, $objet, $id_objet) {
sql_updateq("spip_documents", array('id_vignette' => 0), "id_vignette=".$id_document); sql_updateq("spip_documents", array('id_vignette' => 0), "id_vignette=".$id_document);
// On supprime ensuite s'il est orphelin // On supprime ensuite s'il est orphelin
if (!sql_countsel('spip_documents_liens', 'id_document='.$id_document)) if (!sql_countsel('spip_documents_liens', 'id_document='.$id_document)){
return supprimer_document($id_document); $supprimer_document = charger_fonction('supprimer_document','action');
return $supprimer_document($id_document);
}
// http://doc.spip.org/@supprimer_document
function supprimer_document ($id_document) {
include_spip('inc/documents');
if (!$doc = sql_fetsel('*', 'spip_documents', 'id_document='.$id_document))
return false;
spip_log("Suppression du document $id_document (".$doc['fichier'].")");
// Si c'est un document ayant une vignette, supprimer aussi la vignette
if ($doc['id_vignette']) {
supprimer_document($doc['id_vignette']);
sql_delete('spip_documents_liens', 'id_document='.$doc['id_vignette']);
}
// Supprimer le fichier si le doc est local,
// et la copie locale si le doc est distant
if ($doc['distant'] == 'oui') {
include_spip('inc/distant');
if ($local = copie_locale($doc['fichier'],'test'))
spip_unlink($local);
} }
else spip_unlink(get_spip_doc($doc['fichier']));
sql_delete('spip_documents', 'id_document='.$id_document);
} }
// http://doc.spip.org/@action_documenter_post // http://doc.spip.org/@action_documenter_post
function action_documenter_post($r) function action_documenter_post($r)
{ {
......
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2008 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
// http://doc.spip.org/@supprimer_document
function action_supprimer_document_dist($id_document) {
if (!autoriser('supprimer','document',$id_document))
return false;
include_spip('inc/documents');
if (!$doc = sql_fetsel('*', 'spip_documents', 'id_document='.$id_document))
return false;
spip_log("Suppression du document $id_document (".$doc['fichier'].")");
// Si c'est un document ayant une vignette, supprimer aussi la vignette
if ($doc['id_vignette']) {
supprimer_document($doc['id_vignette']);
sql_delete('spip_documents_liens', 'id_document='.$doc['id_vignette']);
}
// Supprimer le fichier si le doc est local,
// et la copie locale si le doc est distant
if ($doc['distant'] == 'oui') {
include_spip('inc/distant');
if ($local = copie_locale($doc['fichier'],'test'))
spip_unlink($local);
}
else spip_unlink(get_spip_doc($doc['fichier']));
sql_delete('spip_documents', 'id_document='.$id_document);
}
?>
\ No newline at end of file
...@@ -87,10 +87,8 @@ function legender_suppression($id, $id_document, $ancre, $s, $script, $supp, $ty ...@@ -87,10 +87,8 @@ function legender_suppression($id, $id_document, $ancre, $s, $script, $supp, $ty
// sans doute a revoir car le document serait alors peut-etre orphelin // sans doute a revoir car le document serait alors peut-etre orphelin
if ($id <= 0) return ''; if ($id <= 0) return '';
// si plusieurs liens sur le doc, pas de bouton de suppression
if (sql_countsel('spip_documents_liens', 'id_document='.$id_document) > 1)
return '';
// la fonction 'supprimer_document' ne fait que de-associer si un document est utilise par ailleurs
$texte = _T('icone_supprimer_document'); $texte = _T('icone_supprimer_document');
if (preg_match('/_edit$/', $script)) { if (preg_match('/_edit$/', $script)) {
......
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