Newer
Older

cedric@yterium.com
a validé
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *

cedric@yterium.com
a validé
* 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. *
\***************************************************************************/

cedric@yterium.com
a validé
if (!defined("_ECRIRE_INC_VERSION")) return;

cedric@yterium.com
a validé
// http://doc.spip.org/@supprimer_document

cedric@yterium.com
a validé
function action_supprimer_document_dist($id_document=0) {
if (!$id_document){
$securiser_action = charger_fonction('securiser_action','inc');
$id_document = $securiser_action();
}
include_spip('inc/autoriser');

cedric@yterium.com
a validé
if (!autoriser('supprimer','document',$id_document)){
spip_log("Echec : Suppression document $id_document interdite",_LOG_ERREUR);

cedric@yterium.com
a validé
return false;

cedric@yterium.com
a validé
}

cedric@yterium.com
a validé
// si c'etait une vignette, modifier le document source !
if ($source = sql_getfetsel('id_document', 'spip_documents', 'id_vignette='.intval($id_document))){
include_spip('action/editer_document');
document_set($source,array("id_vignette" => 0));
}

cedric@yterium.com
a validé
include_spip('inc/documents');

cedric@yterium.com
a validé
if (!$doc = sql_fetsel('*', 'spip_documents', 'id_document='.intval($id_document))){
spip_log("Echec : Suppression document $id_document : le document n'existe pas en base",_LOG_ERREUR);

cedric@yterium.com
a validé
return false;

cedric@yterium.com
a validé
}

cedric@yterium.com
a validé
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']) {
action_supprimer_document_dist($doc['id_vignette']);
sql_delete('spip_documents_liens', 'id_document='.$doc['id_vignette']);
}

cedric@yterium.com
a validé
// dereferencer dans la base
sql_delete('spip_documents', 'id_document='.intval($id_document));

cedric@yterium.com
a validé
// securite
sql_delete('spip_documents_liens', 'id_document='.intval($id_document));

cedric@yterium.com
a validé

cedric@yterium.com
a validé
// 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');

cedric@yterium.com
a validé
if ($local = _DIR_RACINE . copie_locale($doc['fichier'],'test'))

cedric@yterium.com
a validé
spip_unlink($local);
}

cedric@yterium.com
a validé
else
spip_unlink(get_spip_doc($doc['fichier']));

cedric@yterium.com
a validé

cedric@yterium.com
a validé
pipeline('post_edition',
array(
'args' => array(
'operation' => 'supprimer_document',
'table' => 'spip_documents',
'id_objet' => $id_document
),
'data' => null
)
);

cedric@yterium.com
a validé
return true;