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.