Interner Link im Joomla-Template

Manchmal kann es notwendig sein, einen internen Link direkt ins Joomla Template einzufügen. Die naheliegendste Möglichkeit ist wohl, auf die entsprechende Seite im Browser zu gehen, die URL zu kopieren und im Template einzufügen. Allerdings kann sich der Name der Seite (und damit unter Umständen der Alias) ändern und das ergibt dann ungültige Links auf der Seite. Diese gilt es zu vermeiden.

Nun, die Lösung ist eigentlich ganz einfach und heißt JHTML::link(). Das ist die Funktion, die aus einer URL mit GET-Parametern eine schöne Joomla-URL macht.

Also, zuerst müssen wir den Link zusammenbauen:

Einen Artikel verlinken

Im Joomla-Backend auf die Beitragsübersicht gehen um die ID des Artikels herauszufinden (in der ganz rechten Spalte):

Die ID wird dann an den folgenden Link statt xyz angehängt.

index.php?option=com_content&view=article&id=xyz

Oft will man aber nicht auf den Beitrag, sondern auf einen bestimmten

Menüpunkt verlinken

Dazu geht man im Backend auf ein Menü, und wählt den entsprechenden Menüeintrag aus. In der Detailansicht sieht man dann die ID des Menüeintrags (Menü-Item), die man benötigt:

Auch hier wird die ID (in diesem Fall 54) an den Link angehängt:

index.php?Itemid=xyz

Ins Template einfügen

Nun muß der Link nur noch an der gewünschten Stelle ins Template eingefügt werden:

<?
echo JHTML::link('index.php?Itemid=xyz','Linktitel', $attribute);
?>

Mögliche HTML Attribute des Link-Tags können über das assoziative Array $attribute übergeben werden, z.B.:

<?
$attribute = array('class'=>'menulink', 'title'=>'Zum Menü');
echo JHTML::link('index.php?Itemid=xyz','Linktitel', $attribute);
?>

Trackbacks

    Keine Trackbacks

Kommentare

Ansicht der Kommentare: (Linear | Verschachtelt)

  1. Shug schreibt:

    das ist hammer! du kannst dir nicht vorstellen wie lange ich die lösung gesucht hab.
    Besten Dank

  2. inmae schreibt:

    Also die Lösung ist gut und funktioniert. Wie immer gibts aber viele Wege nach Rom. Ein sehr starkes Kommentar gegen diese Methode ist die "unaussagekräftige" URL. (Nebenbei ist die auch für Bots nicht sonderlich hilfreich ;) ) So jetzt mal zu den beiden Alternativen:
    A: könnte man ein "leeres" ungenutztes Menü mit einem Link zum Beitrag versehen. Diesen kann man dann "direkt und lesbar" im Template verlinken "http://www.DeineURL.xy/index.php/Linkname". Sieht gut aus und Suchmaschinen finden diesen Deeplink auch besser!
    B."Include Content Item" mal ansehen, ist ein Plugin was meiner Meinung nach in den Core von Joomla gehört!
    C. das nur machen wenns unbedingt sein muss, weil der Kunde Joomla kennt und mag ansonsten mit Drupal arbeiten ;))
    Liebe Grüße
    inmae


Kommentar schreiben



Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA