4.5.6 getVisibilities
La méthode getVisibilities
permet de redéfinir la
visibilité des attributs.
/** * @param \Doc $document * @return RenderAttributeVisibilities new attribute visibilities */ public function getVisibilities(\Doc $document);
Les classes Dcp\Ui\DefaultView
et Dcp\Ui\DefaultEdit
retournent les
visibilités par défaut, en fonction du contrôle de vue.
Cette méthode doit retourner un objet de la classe Dcp\Ui\RenderAttributeVisibilities
qui contient les visibilités à appliquer pour chacun des attributs.
La classe RenderAttributeVisibilities
expose la méthode setVisibility
qui
permet de modifier la visibilité d'un attribut en particulier. Cette visibilité
outrepasse la visibilité par défaut et la visibilité indiquée par un masque provenant
du contrôle de vue.
/** * Affect new visibility to an attribute * This visibility is more prioritary than mask * @param string $attributeId attribute identifier * @param string $visibility one of I,H,O,R,W,S * @return $this * @throws Exception */ public function setVisibility($attributeId, $visibility);
Les visibilités utilisables sont définies comme constantes de la classe
\Dcp\Ui\RenderAttributeVisibilities
.
Si une visibilité est appliquée à un attribut structurant, une propagation de cette visibilité sera effectuée.
4.5.6.1 Exemple
Modification des visibilités de 2 attributs en surchargeant la classe de vue par défaut.
use Dcp\Ui\RenderAttributeVisibilities; use Dcp\AttributeIdentifiers\My_family; class RenderConfigCustom extends \Dcp\Ui\DefaultView { /** * @param \Doc $document * @return \Dcp\Ui\RenderAttributeVisibilities new attribute visibilities */ public function getVisibilities(\Doc $document) { $visibilities = parent::getVisibilities($document); $visibilities->setVisibility( My_family::my_tab_info, \Dcp\Ui\RenderAttributeVisibilities::ReadOnlyVisibility ); $visibilities->setVisibility( My_family::my_tab_annexe, \Dcp\Ui\RenderAttributeVisibilities::WriteOnlyVisibility ); return $visibilities; } }