Sprechende URLs (Entwickler)

Verwendung

Es sind 3 Implementationen notwendig, um sprechende URLs für eigene Logik zu verwenden.

Registrieren des Canonical Link

Ein Canonical Link muss über die linkTo-Methode des Realurl-Packages registriert werden:

use Brandbox\CmsCore\Cms\Realurl; private function linkTo(string $shortLink = 'basket', array $realUrlModels) { return $this ->getManagerRealUrl() ->linkTo($shortLink, $realUrlModels, true) ; } private function getManagerRealUrl(): RealUrl\Manager { return $this->staticController(Realurl\Manager::class); }

$realUrlModels ist dabei ein Array aus Objekten, die das Interface Realurl\Lib\Interfaces\RealUrlInterface implementieren. Ein Objekt repräsentiert dabei immer genau eine Entity.
In den allermeisten Fällen kann direkt \Brandbox\CmsCore\Cms\Realurl\Lib\Map\RealUrlModel verwendet werden.

Interface \Brandbox\CmsCore\Cms\Realurl\Lib\Interfaces\RealUrlInterface

Methode

Signatur

Beschreibung

Methode

Signatur

Beschreibung

getCanonicalQuery

public function getCanonicalQuery(): string;



Liefert die relative Canonical-URL als String zurück.

getEntity

public function getEntity(): ?Dbal\Definition\EntityInterface;

Liefert das zu Grunde liegende Entity zurück.

getIdentification

public function getIdentification(): string;

Liefert einen identifizierenden String zurück. Dies wird pro Implementation benötigt, um unterschiedliche Implementationen für denselben Entity-Typ zu unterscheiden.

getParameters

public function getParameters(): array;

Liefert die Parameter als Name-Value-Paare zurück, die im Canonical URL-Datensatz gespeichert und beim Anwenden der Canonical URL als Request-Parameter zur Verfügung stehen sollen.

getShortLink

public function getShortLink(): string;

Liefert den ShortLink der Seite zurück, die zur Darstellung der Inhalte verwendet werden soll.

Validieren des Canonical Links

Wird ein Canonical Link über den öffentlichen Endpunkt geöffnet, muss er validiert werden, da dieser z.B. seit seiner Anlage seine Gültigkeit verloren haben kann. Für die Validierung wird das Event \Brandbox\CmsCore\Cms\Realurl\Lib\Event\OnValidate gefeuert.

Event-Klasse

Beschreibung

Event-Klasse

Beschreibung

\Brandbox\CmsCore\Cms\Realurl\Lib\Event\OnValidate

Wird beim Validieren eines aufgerufenen Canonical Link gefeuert.

bool $isValid: gibt an, ob der Canonical Link gültig ist. Ist dies nicht der Fall, wird auf einen 404-Seite weitergeleitet. Standardwert ist false. Beim Setzen auf true sollte erwogen werden, die Event-Kette mit stopPropagation zu unterbrechen, um ein nachträgliches Deaktivieren durch einen anderen Subscriber zu vermeiden.
array $params: gibt die Parameter zurück, die der Implementation über HTTP-Request-Parameter zur Verfügung gestellt werden. Enthalten sind standardmäßig alle im Canonical-Link-Datensatz gespeicherten Parameter, die bei Bedarf ergänzt werden können.

Ermitteln des Canonical Links für eine spezielle Kollation

Damit der Sprachumschalter im öffentlichen Endpunkt für jede Kollation einen der aktuellen Kollation entsprechenden Canonical Link ermittelt werden kann, muss folgendes Event subscribed werden.

Event-Klasse

Beschreibung

Event-Klasse

Beschreibung

\Brandbox\CmsCore\Cms\Realurl\Lib\Event\OnPopulateCollationCanonicalQuery

Wird beim Erzeugen eines nicht existenten Canonical Link für den Sprachumschalter gefeuert.

Brandbox\CmsCore\Cms\Realurl\Lib\Entity\CmsCanonicalLink $canonicalLink: Enthält das zugrunde liegende Canonical-Link-Entity

string $canonicalQuery: enthält den zu befüllenden Canonical Query (ohne Kollationskürzel)
int $collationId: enthält die Kollations-Id für den zu ermittelnden Canonical Query