4.6 Edit und Select Callbacks
Es gibt zwei Callbacks, um die Buttons für die Bearbeitung anzupassen, einen für das Beratbeiten der Buttons im Fuß der
Bearbeitungsmaske eines Datensatzes (edit.buttons) und einen zum Bearbeiten der Buttons im Fuß beim
"Mehrere Bearbeiten" (select.buttons).
In diesen Beispielen werden die Callbacks immer in der Datei
/src/Ctocb/Example/Resources/config/services.yml registriert und die Klasse für die Verarbeitung ist hier immer
/src/Ctocb/Example/Classes/Contao/Callbacks/TlTest.php. Wer nicht weiß was hier gemeint ist, sollte sich den Text
" "Grundlagen der Callbacks"" noch einmal ansehen.
Bitte auch in diesem Artikel wieder den Vendor-Namespace (und/oder entsprechenden Ordner)
durch Euren eignen ersetzen und nicht Ctocb verwenden! Danke!
Callback: edit.buttons
Mit dem edit.buttons-Callback kann man die Buttons zum Speichern, Schließen usw. im Fuß der Bearbeitungsmaske bearbeiten.
services:
Ctocb\Example\Classes\Contao\Callbacks\TlTest:
public: true
tags:
- { name: contao.callback, target: edit.buttons, table: tl_test, method: myCallback, priority: 1024 }
<?php declare(strict_types=1);
namespace Ctocb\Example\Classes\Contao\Callbacks;
use Contao\DataContainer;
class TlTest
{
public function myCallback(array $buttons, DataContainer $dc): void
{
// Remove the "Save and close" button
unset($buttons['save']);
return $buttons;
}
}
Der erste Parameter enthält ein Array mit dem Markup der Standardbuttons, dies kann bearbeitet und erweitert werden. Das
angepasste Array wird als Rückgabewert erwartet. $dc ist wie immer das Data Conatiner Objekt. In diesem Beispiel aus
dem Handbuch wird der Button für das Speichern entfernt.
Callback: select.buttons
Mit dem select.buttons-Callback kann man die Buttons zum Speichern, Löschen usw. im Fuß beim "Mehrere Bearbeiten" bearbeiten.
services:
Ctocb\Example\Classes\Contao\Callbacks\TlTest:
public: true
tags:
- { name: contao.callback, target: select.buttons, table: tl_test, method: myCallback, priority: 1024 }
<?php declare(strict_types=1);
namespace Ctocb\Example\Classes\Contao\Callbacks;
use Contao\DataContainer;
class TlTest
{
public function myCallback(array $buttons, DataContainer $dc): void
{
// Remove the "delete" button
unset($buttons['delete']);
return $buttons;
}
}
Der erste Parameter enthält ein Array mit dem Markup der Standardbuttons, dies kann bearbeitet und erweitert werden. Das
angepasste Array wird als Rückgabewert erwartet. $dc ist wie immer das Data Conatiner Objekt. In diesem Beispiel aus dem
Handbuch wird der Button für das Löschen
entfernt.