13.6.2.18 Doc::preConsultation()

Hameçon (ou hook) utilisé par l'action de consultation html du document FDL:OPENDOC. Elle est appelée avant la composition du template.

13.6.2.18.1 Description

string preConsultation (  )

Cette méthode permet de réaliser des opérations afin d'ajuster l'affichage du document. Ces opérations peuvent être :

  • ajout d'un fichier javascript ou css,
  • modification des visibilités d'attributs,
  • modification d'une propriété d'attributs,
  • etc.

13.6.2.18.1.1 Avertissements

À la différence de Doc::preRefresh() qui est appelé lors de consultation et lors de l'édition, cette méthode n'est appelée que lors de la consultation. Elle est appelée après la méthode Doc::refresh().

Cette méthode n'est pas déclenchée lors de l'affichage de liste de documents.

13.6.2.18.2 Liste des paramètres

Aucun.

13.6.2.18.3 Valeur de retour

string : message d'information.

Ce message est affiché sur le document comme pour celui de la méthode Doc::preRefresh().

13.6.2.18.4 Erreurs / Exceptions

Aucune.

13.6.2.18.5 Historique

Aucun.

13.6.2.18.6 Exemples

13.6.2.18.6.1 Ajout d'asset ccs et js

Cas d'une famille MyFamily qui possède un niveau d'urgence représenté par l'attribut my_level.

Ajout d'un fichier css et d'un fichier javascript dans le cas ou le niveau my_level du document est supérieur à 2.

class MyFamily extends \Dcp\Family\Document
{
  public function preConsultation() {
    if ($this->getAttributeValue(\Dcp\AttributeIdentifiers\MyFamily::my_level) > 2) {
        global $action;
        $action->parent->addJsRef("MYAPP/Layout/mySpecial.js");
        $action->parent->addCssRef("MYAPP/Layout/mySpecial.css");
        if ($this->getAttributeValue(\Dcp\AttributeIdentifiers\MyFamily::my_level) > 10) {
             $action->parent->addCssRef("MYAPP/Layout/myRedAlert.css");
             addWarningMsg("Red Alert");
        }
    }
    return '';
}

Si le niveau est supérieur à 10 alors une deuxième css est ajouté ainsi qu'un message d'avertissement qui sera visible lors de la consultation.

Voir addjsRef et addCssRef pour l'ajout d'asset.

13.6.2.18.6.2 Modification de visibilité

Masquage d'un attribut my_informations si niveau my_level est égal à 0.

class MyFamily extends \Dcp\Family\Document
{
  public function preConsultation() {
    if ($this->getAttributeValue(\Dcp\AttributeIdentifiers\MyFamily::my_level) == 0) {
        // l'attribut my_information est caché
         $myAttribute=$this->getAttribute(\Dcp\AttributeIdentifiers\MyFamily::my_information);
         $myAttribute->setVisibility('H');
    }
    return '';
}

Attention : La méthode BasicAttribute::setVisibility() ne propage pas la visibilité dans le cas où l'attribut est un attribut de structure (array, frame ou tab).

13.6.2.18.7 Notes

Aucune.

13.6.2.18.8 Voir aussi

×