13.6.3.6 Doc::delete()
Méthode utilisée pour supprimer un document.
13.6.3.6.1 Description
string delete ( bool $really = false, bool $control = true, bool $nopost = false )
Cette méthode met le statut du document à "supprimé". La propriété
doctype
est affectée à Z
(Zombie) et locked
est affectée à -1
dans le
cas d'une suppression logique.
13.6.3.6.1.1 Avertissements
Cette méthode supprime toutes les révisions du document.
13.6.3.6.2 Liste des paramètres
- (bool)
really
- Si
really
esttrue
, le document ainsi que toutes ses révisions sont supprimées de la base de données. Cette opération n'est pas annulable.
Sireally
estfalse
, le document est supprimé de manière logique. il est donc toujours présent en base de données mais juste noté comme étant supprimé. - (bool)
control
- Si
control
esttrue
, le droitdelete
est vérifié pour l'utilisateur courant. Si l'utilisateur n'a pas ce privilège la suppression est abandonnée.
Sicontrol
estfalse
, la vérification des droits n'est pas effectuée. - (bool)
nopost
- Si
nopost
esttrue
, alors les hameçonsDoc::preDelete()
etDoc::postDelete()
ne sont pas exécutés.
Sinopost
estfalse
, ces deux hameçons (hooks) sont exécutés.
13.6.3.6.3 Valeur de retour
Message d'erreur. Si la chaîne retournée est non nulle, le message indique l'erreur qui a interdit la suppression.
13.6.3.6.4 Erreurs / Exceptions
Une erreur est retournée si :
- le document n'existe pas ou plus,
- le document est déjà supprimé,
- l'utilisateur n'a pas le droit
delete
sur le document, - l'hameçon
preDelete()
retourne une erreur.
13.6.3.6.5 Historique
La méthode obsolète Doc::reallyDelete()
est équivalente à cette méthode avec
le paramètre $really
mis à true
.
13.6.3.6.6 Exemples
Suppression du document référencé par l'identificateur $documentId
.
$doc=new_doc('', $documentId); if ($doc->isAlive()) { $err=$doc->delete(); // maintenant le document est supprime if ($err == "") { printf("Suppression %s [%d]", $doc->getTitle(), $doc->id); } }
13.6.3.6.7 Notes
Une entrée dans l'historique est enregistrée à chaque suppression.
Les documents supprimés logiquement sont toujours accessibles avec leur identifiant. Ils ne peuvent par contre plus être modifiés par l'interface web.
La classe SearchDoc
permet de rechercher les documents supprimés
en utilisant l'attribut trash
.