terminal42/contao-calendar-categories

Kategorie IDs im Frontend

Closed this issue · 5 comments

Ist ist möglich die Kategorie-IDs im Frontend auszugeben? Bei den Variablen z.B. beim event_full.html5 ist nichts dabei.

in 11c2b03 hinzugefügt. Im event_full Template (etc.) sollten die IDs der Kategorien ab Version 1.1.1 als $this->categories verfügbar sein.

Bei mir zeigt es sie leider immer noch nicht an, weder im event_full noch in den anderen (upcoming etc.).

du müsstest das Template anpassen und sie selber ausgeben, automatisch passiert nichts...

Die Änderung greift nur, wenn die Filterung aktiv ist.

This is how you could do it in your own hook:

namespace App\EventListener\GetAllEvents;

use Codefog\HasteBundle\Model\DcaRelationsModel;
use Contao\CoreBundle\DependencyInjection\Attribute\AsHook;
use Terminal42\CalendarCategoriesBundle\Model\CalendarCategoryModel;

#[AsHook('getAllEvents')]
class EventTitlesListener
{
    public function __invoke(array $days): array
    {
        foreach ($days as &$dates) {
            foreach ($dates as &$events) {
                foreach ($events as &$event) {
                    $categoryIds = DcaRelationsModel::getRelatedValues('tl_calendar_events', 'categories', $event['id']);
                    $event['categoriesCollection'] = CalendarCategoryModel::findMultipleByIds($categoryIds);
                }
            }
        }

        return $days;
    }
}
<!-- templates/event_teaser.html5 -->
<?php foreach ($this->categoriesCollection ?? [] as $category): ?>
  <div><?= $category->name ?></div>
<?php endforeach; ?>