13.6.2.10 Doc::preRefresh()
Hameçon (ou hook) utilisé par la méthode Doc::refresh()
.
13.6.2.10.1 Description
string preRefresh ()
Cette méthode est appelée par la méthode Doc::refresh()
avant la mise à jour des attributs calculés.
13.6.2.10.1.1 Avertissements
Les contrôles relatifs au droit de modification sont désactivés pendant l'appel
de cette méthode. Ceci permet à la méthode Doc::setValue()
de
ne pas vérifier les droits de modification.
13.6.2.10.2 Liste des paramètres
Aucun.
13.6.2.10.3 Valeur de retour
Cette méthode doit retourner une chaîne de caractères. Ce message est retourné
par la méthode Doc::refresh()
.
13.6.2.10.4 Erreurs / Exceptions
Aucun.
13.6.2.10.5 Historique
Aucun.
13.6.2.10.6 Exemples
Récupération de l'adresse mail du rédacteur et mise à jour. Si l'adresse est différente un message est retourné.
Soit la famille suivante :
BEGIN | Ma famille | MYFAMILY | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
CLASS | My\MyFamily | ||||||||||
// | idattr | idframe | label | T | A | type | ord | vis | … | phpfunc | |
ATTR | MY_IDENTIFICATION | Identification | N | N | frame | 10 | W | ||||
ATTR | MY_REDACTOR | MY_IDENTIFICATION | rédacteur | N | N | account | 30 | W | ::mySum(MY_NUMBERONE, MY_NUMBERTWO) | ||
ATTR | MY_MAIL | MY_IDENTIFICATION | Adresse courriel | N | N | text | 10 | R | |||
END |
Avec la classe :
namespace My; use \Dcp\AttributeIdentifiers\MyFamily as MyAttributes; use \Dcp\AttributeIdentifiers\Iuser as Aiuser; class MyFamily extends \Dcp\Family\Document { public function preRefresh() { $msg = ''; $redactorId = $this->getRawValue(MyAttributes::my_redactor); if ($redactorId) { $du = new_doc($this->dbaccess, $redactorId); if ($du->isAlive()) { $redactorMail=$du->getRawValue(Aiuser::us_mail); if ($redactorMail != $this->getRawValue(MyAttributes::my_mail)) { $err=$this->setValue(MyAttributes::my_mail, $du->getRawValue(Aiuser::us_mail)); if (empty($err)) { $msg=sprintf("L'adresse du rédacteur a été changée.\nNouvelle adresse : %s", $redactorMail); } else { $msg=sprintf("Erreur d'affectation : %s", $err); } } } } else { $this->clearValue(MyAttributes::my_mail); } return $msg; } }
13.6.2.10.7 Notes
En cas de famille héritée, il est nécessaire d'appeler l'hameçon du parent pour disposer des mêmes fonctionnalités.