Hallo zusammen,
ich arbeite gerade an einer Contao 3.5 Website mit verschiedenen Benutzergruppen im Backend.
Jede Benutzergruppe soll im Backend auf genau eine Seite mit genau einem Artikel zugreifen.
Inhalt des Artikels ist ein Akkordeon (Umschlag Beginn und Ende), das wiederum einzelne Download-Elemente umfasst. Mit den Boardmitteln der Rechteverwaltung sowie der ce_access Erweiterung soweit kein Problem.
Beim Erstellen von Download-Elementen taucht immer wieder das Problem auf, dass die neuen Downloads nicht innerhalb des Akkordeon sondern davor oder danach angelegt werden.
Es sei hinzugefügt, dass die Backend-User vorwiegend technisch nur bedingt versierte Herrschaften sind.
Einfache Erklärungen zur Position von neuen Downloads bzw. dazu, welche Buttons nicht zu verwenden sind, fruchten nur bedingt. Durch die 4 Möglichkeiten, ein neues Element anzulegen, wird es um so verwirrender.
neues-element---buttons.png
Idee: Wenn es nicht um Sicherheit sondern um Usability geht, könnte man bestimmte Buttons im Backend einfach per CSS für bestimmte User/Usergruppen ausblenden. So könnte man in vielen Situationen den Workflow insofern vereinfachen, als dass es für eine Aktion nur genau einen Link/Button gibt.
Voraussetzung: entsprechende class-Attribute, worüber die Buttons und Links im Stylesheet des Backend Themes adressiert werden können.
Meine aktuelle Behelfslösung sieht so aus, dass ich den hardgecodeten Links in der Datei DC_Table.php eine Klasse (Artikel-Id, Ids der Benutzergruppen, Linkbezeichnung) verpasse.
Hardcoden im Core ist natürlich alles andere als ideal.PHP-Code:
//* Zusatz LKM 28.4.2016, class-Attribut zu Link "Neues Element oben erstellen" hinzufügen
$objUser = BackendUser::getInstance();
$gruppen = 'ug'.implode(' ug',$objUser->groups);
$klasse = 'class="addElTop id'.$this->intId.' '.$gruppen.'"';
//* Ende Zusatz
Ich habe auch keine Hooks oder Callbacks gefunden, die sich für dieses Vorhaben angeboten hätten.
Gibt es dazu evt Alternativideen? Wie löst ihr sowas?
Gruß,
Lukas