Hier mal ein Codebeispiel aus meiner Erweiterung.
dca/tl_user_group.php:
PHP-Code:
/**
* Extend default palette
*/
$GLOBALS['TL_DCA']['tl_user_group']['palettes']['default'] = str_replace('fop;', 'fop;{mivis_legend},mivis,mivisv,mivism;', $GLOBALS['TL_DCA']['tl_user_group']['palettes']['default']);
/**
* Add fields to tl_user_group
*/
$GLOBALS['TL_DCA']['tl_user_group']['fields']['mivis'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_user']['mivis'],
'exclude' => true,
'inputType' => 'checkbox',
'foreignKey' => 'tl_mivis_vereine.CONCAT(zps," ",name)',
'eval' => array('multiple'=>true),
'sql' => "blob NULL"
);
$GLOBALS['TL_DCA']['tl_user_group']['fields']['mivisv'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_user']['mivisv'],
'exclude' => true,
'inputType' => 'checkbox',
'options' => array('edit', 'editheader', 'copy', 'create', 'delete', 'toggle', 'show'),
'reference' => &$GLOBALS['TL_LANG']['tl_user_group']['mivisv_options'],
'eval' => array('multiple'=>true),
'sql' => "blob NULL"
);
$GLOBALS['TL_DCA']['tl_user_group']['fields']['mivism'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_user']['mivism'],
'exclude' => true,
'inputType' => 'checkbox',
'options' => array('edit', 'copy', 'create', 'delete', 'toggle', 'show'),
'reference' => &$GLOBALS['TL_LANG']['tl_user_group']['mivism_options'],
'eval' => array('multiple'=>true),
'sql' => "blob NULL"
);
Das Feld mivis mit dem foreignKey ist für Dich interessant. Hier hole ich mir aus tl_mivis_vereine meine Vereine, in Deinem Beispiel die Schulen. Das sind dann die "Archivrechte", um bei Deinem Screenshot zu bleiben.
Dasselbe mußt Du mit einer tl_user.php ("Benutzerrechte erweitern" ist das Stichwort) wiederholen. Hier kannst Du allerdings keine Rechte für Contentfelder vergeben.Das ist in Contao nicht vorgesehen.
Die neuen Felder mußt Du wie gesagt in der config.php noch Contao bekanntmachen, damit sie in die Rechteverwaltung mit übernommen werden.
Lesezeichen