Konfiguration

Konfiguration

Mehr Informationen zur Konfiguration findest du im Fahrzeugmanager Abschnitt Konfiguration.

Abgleich

Mehr Informationen zum Abgleich findest du im Fahrzeugmanager Abschnitt Abgleich.

Verlinken der Fahrzeugnummer

Damit Fahrzeuge auch über die Fahrzeugnummer (domain.de/FAHRZEUGNUMMER) aufgerufen werden können, muss zuerst die Erweiterung terminal42/contao-url-rewrite installiert werden.

Im Ordner app/src/EventListener legst du eine PHP-Datei mit den Namen HookListener.php an.

<?php

namespace App\EventListener;

use Contao\CoreBundle\ServiceAnnotation\Hook;
use Contao\Database;
use Contao\StringUtil;

class HookListener {
    /**
     * @Hook("vehicleFetchItems")
     */
    public function vehicleFetchItems($vehicles): void
    {
        $vehicles = json_decode(json_encode($vehicles), true);

        $database = Database::getInstance();
        $database->execute("TRUNCATE tl_url_rewrite");

        foreach($vehicles as $item) {
            $alias = '/details/'.StringUtil::generateAlias($item['hersteller'].' '.$item['modell'].' '.$item['baureihe'].' '.$item['eigene_id']).'.html';
            $alias = str_replace(['ä','ü','ö'], ['a','u','o'], $alias);

            $set = [
                'name' => $item['eigene_id'],
                'tstamp' => time(),
                'type' => 'basic',
                'requestPath' => '/'.$item['eigene_id'],
                'responseUri' => $alias,
                'responseCode' => 301
            ];
            $database->prepare("INSERT INTO tl_url_rewrite %s")->set($set)->execute();
        }
    }
}

An der Stelle $database->execute("TRUNCATE tl_url_rewrite"); wird die Tabelle geleert. Falls also noch andere Links vorhanden sind, müsste diese Stelle angepasst werden.

Ggf. muss auch noch der Alias an der Stelle $alias = '/details/' angepasst werden, falls das Fahrzeug anders aufgerufen wird.

Anschließend muss im Ordner app/contao/config noch die config.php angelegt und der Cache im Contao Manager geleert werden.

<?php

use App\EventListener\HookListener;

$GLOBALS['TL_HOOKS']['vehicleFetchItems'][] = [HookListener::class, 'vehicleFetchItems'];

Beim nächsten Import sollte die Tabelle, im Backend über den Menüpunkt System > URL Umschreiberegeln zu erreichen, befüllt werden.