# getVisibilities
La méthode getVisibilities permet de redéfinir la visibilité des Smart Fields.
/**
* @param Anakeen\Core\Internal\SmartElement $document
* @return RenderAttributeVisibilities new Smart Field visibilities
*/
public function getVisibilities(Anakeen\Core\Internal\SmartElement $document);
Les classes Anakeen\Ui\DefaultView et Anakeen\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 Anakeen\Ui\RenderAttributeVisibilities qui contient les visibilités
à appliquer pour chacun des Smart Fields.
La classe RenderAttributeVisibilities expose la méthode setVisibility qui permet de modifier la visibilité d'un
Smart Field en particulier. Cette visibilité surcharge 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 \Anakeen\Ui\RenderAttributeVisibilities.
Si une visibilité est appliquée à un attribut structurant, une propagation de cette visibilité sera effectuée.
# Exemple
Modification des visibilités de 2 Smart Fields en surchargeant la classe de vue par défaut.
use Anakeen\Ui\RenderAttributeVisibilities;
use Anakeen\AttributeIdentifiers\My_family;
class RenderConfigCustom extends \Anakeen\Ui\DefaultView
{
/**
* @param \Anakeen\Core\Internal\SmartElement $document
* @return \Anakeen\Ui\RenderAttributeVisibilities new attribute visibilities
*/
public function getVisibilities(\Anakeen\Core\Internal\SmartElement $document)
{
$visibilities = parent::getVisibilities($document);
$visibilities->setVisibility(My_family::my_tab_info, \Anakeen\Ui\RenderAttributeVisibilities::ReadOnlyVisibility);
$visibilities->setVisibility(
My_family::my_tab_annexe,
\Anakeen\Ui\RenderAttributeVisibilities::WriteOnlyVisibility
);
return $visibilities;
}
}