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.

13.6.2.10.8 Voir aussi

×