Annotation de classe @list
-
/** * @list property1, property2 * @list lock property1, property2 */ class Class_Name
/** @list [lock] properties */
Cette annotation indique la liste des propriétés à afficher par le contrôleur de liste par défaut – ou hérité du contrôleur par défaut.
Valeur par défaut
Si l’annotation n’est pas définie, la valeur de @representative sert de liste de propriétés par défaut pour l’annotation de classe @list .
Paramètres
lock
Avec cette option, les colonnes sont verrouillées : les utilisateurs ne pourront pas rajouter ou supprimer de colonnes de la liste.
properties
Indiquez la liste de chemins de propriétés pour la configuration par défaut de la liste.
Notes de comportement
- Si l’utilisateur personnalise sa liste, même s’il ne fait que réaliser des tris ou recherches, ce réglage n’est plus du tout utilisé : il faut qu’il réinitialise la liste pour utiliser de nouveau ces réglages.
- En activant le plugin List_Annotation_Access_Control, il est possible de configurer des droits alwaysLockColumns ou neverLockColumns pour vos classes, permettant ainsi à certains utilisateurs de forcer la pose ou le retrait de l’option
lock
.
Exemple
Fichier
People.php
:
/** * @feature * @list lock name, age, city * @representative name */ class People { /** * @var integer */ public $age; /** * @var string */ public $city; /** * @var string */ public $name; }
Fichier features.yaml :
alwaysLockColumns: features: alwaysLockColumns name: '$class : always lock columns' neverLockColumns: features: neverLockColumns name: '$class : never lock columns'
La fichier config.php contenant notamment :
// (...) Priority::NORMAL => [ // (...) Framework\Reflection\Annotation\Class_\List_Annotation_Access_Control::class, Framework\User\Access_Control::class // (...) ]
Pour cette classe :- Une liste d’objets de classe
People
aura les colonnes$name
,$age
et$city
, dans cet ordre. - l’utilisateur ne pourra pas personnaliser les colonnes de ses listes de
People
, à moins que le gestionnaire de droits d’accès soit activé, ainsi que le plugin List_Annotation_Access_Control, et que son groupe d’utilisateur ait le droit neverLockColumns qui annule l’effet delock
. - Un objet de classe
People
sera toujours représenté par$name
seul.