Hier noch ein kleiner Hack, um auch das Erstellen neuer Archive/Kalender/etc zu unterbinden. Der Hack verläßt sich darauf, dass es einen Übersetzungsstring (['TL_LANG'][$Modulname]['new']) für einen neuen Eintrag und keinen DCA-Eintrag ['list']['global_operations']['new'] gibt. Getestet mit News-Archiv:
WidgetWorkflowItemConfig.php, Zeile 129:
PHP-Code:
if (!$DCAName)
return $GLOBALS['TL_LANG']['tl_wfm']['MissingSettings'];
in
PHP-Code:
if (!$DCAName)
return $GLOBALS['TL_LANG']['tl_wfm']['MissingSettings'];
if(isset($GLOBALS['TL_LANG'][$DCAName]['new']))
{
$arrListGlobalOperationsAction['new'] = new wfmCheckBoxtElement(
$GLOBALS['TL_LANG'][$DCAName]['new'][0],
array('doNotTranslate' => true),
null,
array()
);
}
wmfUserFunctions.php, Zeile 127:
PHP-Code:
if ($element->getData($vars))
{
$output .= 'unset($GLOBALS["TL_DCA"]["'.$element->getDCAName().'"]["list"]["global_operations"]["'.$key.'"]);
';
}
in
PHP-Code:
if ($element->getData($vars))
{
if($key == 'new')
$output .= "\$GLOBALS['TL_DCA']['{$element->getDCAName()}']['config']['closed'] = true;";
else
$output .= 'unset($GLOBALS["TL_DCA"]["'.$element->getDCAName().'"]["list"]["global_operations"]["'.$key.'"]);' . "\n";
}