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.

13.6.3.11.8 Voir aussi

×