Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Verwendung

Um das Plugin zu verwenden ist kein zusätzlicher Aufwand des Nutzers notwendig, sofern das Plugin aktiv ist. Durch die Methode linkTo wird ein Eintrag in der "real Urls"-Tabelle erstellt, sofern eine entsprechend gemappte Entität bereitgestellt wird. Wird beispielsweise der Link für die Artikel-Entität "Schrauber" mit der ID "10" in der deutschen Sprache beantragt, so wird ein Eintrag in der Tabelle erstellt, der die URL ".../schrauber" auf die Artikeldetailseite mit der ID "10" und der Sprache "1" mappt.

Code-Beispiele

...

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

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

Codeblock
languagephp
themeRDark
use brandboxBrandbox\CmsCore\cmsCms\realurlRealurl;

private function linkTo(string $shortLink = 'basket', array $realUrlModels) {
    return $this
	    ->getEngineRealUrl()
	    ->linkTo($shortLink, $realUrlModels, true)
	;
}

private function getEngineRealUrl() {
	  return $this->staticController(realurlRealurl\engine::class);
}


Code-Beispiele

Einfacher Link mit Shortling (cmsPageShortLink)

Links zu Datenmodels

Codeblock
languagephp
themeRDark
titleBeispiel shopGroup mit verschaltelten Gruppen
use brandbox\cms\realurl;

/**
  * @param int[] $groupIDs
  *
  * @return string
  */
public function get($groupIDs = []) {
	$groups = $this->getGroups($groupIDs);
    $contentType = $this
    	->getRepositoryShopGroup()
        ->getIdentifier()
     ;
    $realUrlModels = $this
    	->map()
        ->from($groups, true) // true = multiple
        ->withPropertyMap('contentID', 'id')
        ->withStaticMap('contentType', $contentType)
        ->to(group\lib\map\realUrlModel::class)
     ;

    return $this
    	->getEngineRealUrl()
        ->linkTo(self::SHORT_LINK, $realUrlModels)
        ;
}

private function getEngineRealUrl() { 
	return $this->staticController(realurl\engine::class); 
}

// group\lib\map\realUrl

namespace brandbox\shop\group\lib\map {

    use brandbox\cms\realurl;

    /**
     * @author Christopher Holden <holden@konmedia.com>
     */
    class realUrlModel extends realurl\lib\map\realurlModel {     
      /**
       * @var string
       */
      public $shopGroupName = '';
    }
  }

...