Ja, das kannst du machen.
Wir haben eine Komponente mit dem Konzept "Pläne", die dieselbe Ansicht für verschiedene Zugriffsebenen verwendet, die Felder jedoch abhängig von den Benutzergruppen zugänglich macht oder nicht.
Für Anwendungen, die einen Plan "ausführen", aber nicht bearbeiten können, deaktivieren wir eine Reihe von Feldern. Abhängig vom Feldtyp kann dies bedeuten, dass mehrere Feldattribute festgelegt werden, z
$this->form->setFieldAttribute('name', 'class', 'readonly');
$this->form->setFieldAttribute('name', 'readonly', 'true');
$this->form->setFieldAttribute('description', 'class', 'readonly');
$this->form->setFieldAttribute('description', 'disabled', 'true');
$this->form->setFieldAttribute('description', 'type', 'text');
$this->form->setFieldAttribute('published', 'class', 'readonly');
$this->form->setFieldAttribute('published', 'readonly', 'true');
$this->form->setFieldAttribute('publish_up', 'class', 'readonly');
$this->form->setFieldAttribute('publish_up', 'readonly', 'true');
$this->form->setFieldAttribute('publish_up', 'format', '%Y-%m-%d %H:%M:%S');
$this->form->setFieldAttribute('publish_up', 'filter', 'user_utc');
$this->form->setFieldAttribute('publish_down', 'class', 'readonly');
$this->form->setFieldAttribute('publish_down', 'readonly', 'true');
$this->form->setFieldAttribute('publish_down', 'format', '%Y-%m-%d %H:%M:%S');
$this->form->setFieldAttribute('publish_down', 'filter', 'user_utc');
Abhängig von Ihrem myReadOnlyCode
Feld können Sie dies tun, indem Sie eines oder mehrere der oben gezeigten Attribute festlegen, z. B. wenn es sich nur um eine Standardtexteingabe handelt:
$this->form->setFieldAttribute('myReadOnlyCode', 'class', 'readonly');
$this->form->setFieldAttribute('myReadOnlyCode', 'readonly', 'true');