# 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;
}
}