[875 Aufrufe]

5.5 Hooks: calendar

In diesem Abschnitt beschäftigen wir uns mit den Hooks für den Kalendar.

Hook: findCalendarBoundaries

Mit dem findCalendarBoundaries Hook können die Grenzen für die Anzeige im Kalender beeinflusst werden.

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: findCalendarBoundaries, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

use Contao\Module;

class ExampleHook {

    public function handleHook(int &$dateFrom, int &$dateTo, int &$repeatUntil, Module $module): void
    {
        // Modify $dateForm, $dateTo or $repeatUntil here
    }
}

Parameter:

Parameter Typ Beschreibung
$dateFrom int Zeitstempel der unteren Grenze für die Anzeige
$dateTo int Zeitstempel der obere Grenze für die Anzeige
$repeatUntil int Maximum für tl_calendar_events.repeatEnd
$module \Contao\Module Instanz des Frontend Moduls

Rückgabewert:

Keiner, da die Werte per Referenz übergeben werden.

Referenz im Contao Core: \Contao\ModuleCalendar#L131

Hook: getAllEvents

Mit dem getAllEvents Hook können die angezeigten Events manipuliert werden.

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: getAllEvents, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

use Contao\Module;

class ExampleHook {

    public function handleHook(array $events, array $calendars, int $timeStart, int $timeEnd, Module $module): array
    {
        // Add events to $events or modify the array

        return $events;
    }
}

Parameter:

Parameter Typ Beschreibung
$events array Array mit den geladenen Events
$calendars array Array mit den Ids der Kalender, aus denen die Events stammen
$timeStart int Zeitstempel des Statdatums
$timeEnd int Zeitstempel des Enddatums
$module \Contao\Module Instanz des Frontend Moduls

Rückgabewert:

Typ Beschreibung
array Das überarbeitet Array mit den Events

Referenz im Contao Core: \Contao\Events#L180-L188