Global Operation in DCA erstellen
Hallo zusammen,
ich habe aktuell ein kleines Problem mit der Erstellung einer global Operation in einem meiner DCA. Konkret soll es um eine Export-Funktion gehen. Ich möchte die Global Operation anklicken können und es soll eine Funktion in der Klasse aufgerufen werden, die sich um eine Export-Routine kümmert.
Erstelle ich die Operation wie folgt:
PHP-Code:
<?php
use Contao\DC_Table;
use Contao\Backend;
use Contao\Image;
$GLOBALS['TL_DCA']['tl_categories']['config'] = [
'dataContainer' => DC_Table::class,
'sql' => [
'keys' => [
'id' => 'primary',
],
],
];
// Listing
$GLOBALS['TL_DCA']['tl_categories']['list']['sorting'] = [
'mode' => 1,
'flag' => 11,
'fields' => array('categoryde')
];
// Global Operations
$GLOBALS['TL_DCA']['tl_categories']['list']['global_operations'] = [
'export_all' => [
'label' => &$GLOBALS['TL_LANG']['tl_categories']['export_all'],
'icon' => 'diffTemplate.svg',
]
];
...
class tl_categories extends Backend {
public function export_all_callback(){
....
}
}
?>
So wird mir die Operation im Backend korrekt angezeigt. Durch den fehlenden Callback passiert natürlich nichts. Ergänze ich jedoch den Callback:
PHP-Code:
// Global Operations
$GLOBALS['TL_DCA']['tl_categories']['list']['global_operations'] = [
'export_all' => [
'label' => &$GLOBALS['TL_LANG']['tl_categories']['export_all'],
'icon' => 'diffTemplate.svg',
'button_callback' => array('tl_categories', 'export_all_callback')
]
];
so verschwindet die Option aus dem Backend und wird stattdessen sofort beim aufrufen des Backend Modules aufgerufen. Wo liegt hier mein fehler?