Mehr Informationen zur Konfiguration findest du im Fahrzeugmanager Abschnitt Konfiguration.
Mehr Informationen zum Abgleich findest du im Fahrzeugmanager Abschnitt Abgleich.
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.