13.6.3.11 Doc::enableEditControl()
Cette méthode permet de restaurer le contrôles des droits de modifications
précédemment suspendus par la méthode Doc::disableEditContol()
.
13.6.3.11.1 Description
void enableEditControl ( )
Cette méthode restaure le contrôle de droit de modification.
Si la méthode Doc::disableEditContol()
a été appelée plusieurs fois
consécutivement, il est nécessaire d'appeler autant de fois cette méthode pour
restaurer le contrôle.
13.6.3.11.1.1 Avertissements
Les appels successifs à disableEditControl
se cumulent. Ainsi, si une méthode
fait appel à disableEditControl
et n'appelle pas enableEditControl
, toutes
les méthodes qui se déclenchent ensuite outrepasseront les privilèges de
l'utilisateur. Aussi, à moins de vouloir explicitement ce comportement, tout
appel à disableEditControl
doit être suivi d'un appel à enableEditControl
avant que la fonction ne retourne, même en cas de retour anticipé à cause d'une
erreur. Notamment, le code suivant laisse les contrôles désactivés :
$doc = new_Doc("", 1000); $doc->disableEditControl(); $doc->disableEditControl(); $doc->enableEditControl();
13.6.3.11.2 Liste des paramètres
Aucun.
13.6.3.11.3 Valeur de retour
void.
13.6.3.11.4 Erreurs / Exceptions
Aucune.
13.6.3.11.5 Historique
Aucun.
13.6.3.11.6 Exemples
13.6.3.11.6.1 Imbrication des suspensions de contrôle de modification.
L'utilisateur courant n'a pas le droit edit
sur le document n°1420.
function modifyBirthday(Doc &$doc) { $doc->disableEditControl(); print "Suspension du contrôle\n"; $err = $doc->setValue(\Dcp\AttributeIdentifiers\Zoo_animal::an_naissance,"2013-01-01"); print "\tAffectation an_naissance\n"; $doc->enableEditControl(); print "Activation du contrôle\n"; return $err; } function modifyNameAndBirthday(Doc &$doc) { $doc->disableEditControl(); print "Suspension du contrôle\n"; $err = $doc->setValue(\Dcp\AttributeIdentifiers\Zoo_animal::an_nom,"Helitor"); print "\tAffectation an_nom\n"; if (empty($err)) { $err=modifyBirthday($doc); if (empty($err)) { $err=$doc->store(); print "\tEnregistrement\n"; } } $doc->enableEditControl(); print "Activation du contrôle\n"; return $err; } $doc=new_doc("", "1420"); if ($doc->isAlive()) { $err = modifyNameAndBirthday($doc); if (empty($err)) { printf("Document \"%s\" a été enregistré\n", $doc->getTitle()); } else { printf("Error: %s\n", $err); } } else { printf("Document non trouvé\n"); }
Résultat :
Suspension du contrôle Affectation an_nom Suspension du contrôle Affectation an_naissance Activation du contrôle Enregistrement Activation du contrôle Document "Helitor" a été enregistré
La première activation de contrôle n'est pas effective car deux suspensions ont été réalisées précédemment. Seule la deuxième activation rétablit le contrôle.
13.6.3.11.7 Notes
Aucune.