Ok.
in src/EventListener/SendNotificationMessage im Root kommt deine Hook-Klasse. Wichtig ist, dass du den zweiten Parameter ($arrTokens) per Referenz übergibst -> deswegen das "&" davor:
Code:
<?php
// src/EventListener/SendNotificationMessage.php
declare(strict_types=1);
namespace App\EventListener;
use Contao\CoreBundle\ServiceAnnotation\Hook;
use Contao\FilesModel;
use NotificationCenter\Model\Message;
use NotificationCenter\Model\Gateway;
/**
* @Hook("sendNotificationMessage")
*/
class SendNotificationMessage
{
public function __invoke(Message $objMessage, array &$arrTokens, ?string $language, Gateway $objGatewayModel)
{
$intMessageId = 2; // Vorausgesetzt die id deiner NC Message ist 2.
if ((int)$objMessage->id === $intMessageId) {
$objFiles = FilesModel::findByUuid($arrTokens['document']);
if(null !== $objFiles){
// file path relative to the document root
$arrTokens['document'] = $objFiles->path;
}
return true;
}
return false;
}
}
Das zusätzliche Attachment Token hast du ja schon registriert, wenn nein, musst du das in contao/config/config.php noch tun:
Code:
<?php
// contao/config/config.php
// notification center
if (isset($GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['calendar-event-booking-bundle'])) {
$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['calendar-event-booking-bundle']['booking-notification']['attachment_tokens'] = ['document'];
}
Danach ein composer install und fertig is. ;-)
Das Ganze noch als Gist
Liebe Grüsse und viel Spass mit markocupic/calendar-event-booking-bundle
Marko