9. Für Programmierer und Entwickler
Dieser Abschnitt richtet sich an Programmierer, die in eigenen Modulen Einfluss auf diese Erweiterung nehmen wollen. Im Programmablauf kann man sich an verschiedenen Stellen mittels einer HOOK-Registrierung einkoppeln. Die Erweiterung contao-pdfforms-bundle ruft die registrierten Hooks auf, sofern welche vorhanden sind.
Folgende Hooks sind verfügbar:
pdf_formsBeforePdf
Wird nach der Datenaufbereitung aufgerufen, bevor das PDF erstellt wird. Hier können in dem übergebenen Array $arrPDF weitere Einträge hinzugefügt oder vorhandene modifiziert werden. Der Hook muss das $arrPDF als Rückgabewert zurückgeben.
Beispiel:
// src/EventListener/Pdf_formsBeforePdfListener.php
<?php
namespace App\EventListener;
use Contao\CoreBundle\DependencyInjection\Attribute\AsHook;
#[AsHook('pdf_formsBeforePdf')]
class Pdf_formsBeforePdfListener
{
public function __invoke(array $arrPDF)
{
// beliebiger Code
return $arrPDF;
}
}
pdf_formsPositions
Wird bei der PDF-Erstellung für jede Position im Formular aufgerufen. Hier besteht die Möglichkeit, noch Daten zu manipulieren. Die Seitennummer kann nicht verändert werden, da andernfalls die Ausgabe nicht korrekt funktioniert. Als Rückgabewert wird das übergebene und ggf. modifizierte Array $arrItem erwartet.
Beispiel:
// src/EventListener/Pdf_formsPositionsListener.php
<?php
namespace App\EventListener;
use Contao\CoreBundle\DependencyInjection\Attribute\AsHook;
#[AsHook('pdf_formsPositions')]
class Pdf_formsPositionsListener
{
public function __invoke(array $arrItem)
{
// beliebiger Code
return $arrItem;
}
}
pdf_formsAfterPdf
Wird nach der Erzeugung, Speicherung und der Übergabe an die Formularverarbeitung aufgerufen. Hier können weitere abschließende Aktivitäten per Hook eingefügt werden. Der Hook hat keinen Rückgabewert.
Beispiel:
// src/EventListener/Pdf_formsAfterPdfListener.php
<?php
namespace App\EventListener;
use Contao\CoreBundle\DependencyInjection\Attribute\AsHook;
#[AsHook('pdf_formsAfterPdf')]
class Pdf_formsAfterPdfListener
{
public function __invoke(string $pdfdatei, array $arrPDF): void
{
// beliebiger Code
}
}