SEF Url programmatisch erstellen

  • Hallo,


    ich lese in einem selbst erstellten Modul Beitrags-IDs aus der Datenbank aus und gebe diese im Frontend aus.

    Nun würde ich gerne eine URL generieren, um den Beitrag aufrufen zu können.

    Gibt es eine Möglichkeit, aus einer Beitrags-ID eine suchmaschinenfreundliche URL zu erstellen?


    Danke und VG

    Andreas

  • Einen Gefallen tust du dir, wenn du zusätzlich 'catid' und 'language' ausliest.


    Bissdchen Schmökern in joomlaeigenen Modulen zeigt:

    https://github.com/joomla/joom…tegory/helper.php#L14-L16

    https://github.com/joomla/joom…_category/helper.php#L260


    "Lädst" also (in Joomla 3) einmalig, z.B. am Beginn der Datei:

    Code
    JLoader::register('ContentHelperRoute', JPATH_SITE . '/components/com_content/helpers/route.php');

    Und kannst dann die SEF-URL so generieren. Sagen wir mal dein Artikel ist das $item-Objekt:

    Code
    $item->link = JRoute::_(ContentHelperRoute::getArticleRoute($item->id, $item->catid, $item->language));

    Vorteil. Wenn SEF gar nicht aktiviert ist in der Konfiguration, kommt halt der Nicht-SEF raus.


    Kannst auch mal probieren, ob das nur mit der id klappt. Weiß ich auswendig nicht.


    EDIT: Ja, geht auch nur mit id. Sicherer ist es allerdings catid und language mit auszuliefern. Je nach Umgebung, wo das Modul dann eingesetzt werden soll.