13.6.3.9 Doc::duplicate()
Méthode utilisée pour dupliquer un document.
13.6.3.9.1 Description
Doc|string duplicate (bool $temporary = false, bool $control = true, bool $linkfld = false, bool $copyfile = false )
Cette méthode réalise une copie de l'objet Document. Cette copie est enregistrée en base de donnée avec un nouvel identificateur.
La révision de la copie est affectée à zéro. Le profil de la copie est affectée
au profil (cprofid
) indiquée par la famille.
Si le document est lié à un cycle, l'état de la copie est l'état initial du cycle.
13.6.3.9.1.1 Avertissements
Aucun.
13.6.3.9.2 Liste des paramètres
- (bool)
temporary
- Si
true
, le document en base est créé comme document temporaire.
Aucun profil n'est associé au document s'il est temporaire.
Sifalse
: le document est crée avec un identificateur non temporaire - (bool)
control
- Si
true
, la duplication est contrôlé par le droitcreate
.
Sifalse
: aucun contrôle de droit est réalisé. - (bool)
linkfld
- Si
true
, et si le document est un dossier. alors les documents contenus dans le dossier original sont liés aussi au dossier copié. Les documents contenus ne sont pas dupliqués mais juste liés.
Sifalse
: seul le document dossier est copié. -
(bool)
copyfile
- Si
true
, les fichiers attachés au document (attribut de typefile
ouimage
) sont dupliqués aussi. Sifalse
: les fichiers sont liés aux fichiers originaux.
13.6.3.9.3 Valeur de retour
En cas d'erreur : Message d'erreur. Si la chaîne retournée est non nulle, le message indique l'erreur qui a interdit la suppression.
En cas de succès : retourne l'objet Doc
dupliqué.
13.6.3.9.4 Erreurs / Exceptions
Retourne un message d'erreur dans les cas suivants :
- pas de droit de créer un document de la même famille,
- retour du
preDuplicate()
non vide, - des attributs sont en visibilité
I
.
Exceptions :
-
\Dcp\Exception('DOC0203')
si le document à dupliquer est invalide.
13.6.3.9.5 Historique
Anciennement Doc::copy()
.
13.6.3.9.6 Exemples
Duplication du document référencé par l'identificateur $documentId
.
$doc=new_doc('', $documentId); if ($doc->isAlive()) { $copyDoc=$doc->duplicate(); // maintenant le document est dupliqué if (is_string($copyDoc)) { $err=copyDoc; printf ("Erreur de duplication %s", $err ); } else { printf("Duplication de %s [%d] => %s [%d]", $doc->getTitle(), $doc->id, $copyDoc->getTitle(), $copyDoc->id); } }
13.6.3.9.7 Notes
Une entrée dans l'historique du document dupliqué indique l'origine de la duplication.
Lors de la duplication à l'aide du menu "Dupliquer" (action
GENERIC:GENERIC_DUPLICATE), le document dupliqué est inséré dans le même
dossier primaire (propriété prelid
) que l'origine.
13.6.3.9.8 Voir aussi
Les hameçons (hooks) :