0)); } include_spip('inc/documents'); 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); return false; } spip_log("Suppression du document $id_document (" . $doc['fichier'] . ')'); include_spip('action/editer_liens'); // Si c'est un document ayant une vignette, supprimer aussi la vignette if ($doc['id_vignette']) { action_supprimer_document_dist($doc['id_vignette']); objet_dissocier(array('document' => $doc['id_vignette']), '*'); } // Si c'est un document ayant des documents annexes (sous-titre, ...) // les supprimer aussi $annexes = array_map( 'reset', sql_allfetsel('id_document', 'spip_documents_liens', "objet='document' AND id_objet=" . intval($id_document)) ); foreach ($annexes as $id) { action_supprimer_document_dist($id); } // dereferencer dans la base objet_dissocier(array('document' => $id_document), '*', array('role' => '*')); sql_delete('spip_documents', 'id_document=' . intval($id_document)); // 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 = _DIR_RACINE . copie_locale($doc['fichier'], 'test')) { spip_unlink($local); } } else { spip_unlink(get_spip_doc($doc['fichier'])); } pipeline( 'post_edition', array( 'args' => array( 'operation' => 'supprimer_document', // compat v<=2 'action' => 'supprimer_document', 'table' => 'spip_documents', 'id_objet' => $id_document, 'document' => $doc, ), 'data' => null ) ); return true; }