Im Template die Seite eines Artikels verlinken

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • JaiBee
    Contao-Nutzer
    • 12.11.2010
    • 178

    #1

    Im Template die Seite eines Artikels verlinken

    Hallo,

    in einem Template (mod_tag_contentlist.tpl) habe ich folgende Zeilen, welche den Titel und Teaser eines Artikels anzeigen und verlinken:

    PHP-Code:
    <?php if (count($this->articles)): ?>
    <?php foreach ($this->articles as $article): ?>
            {{article::<?php echo $article['alias']; ?>}}
            {{article_teaser::<?php echo $article['alias']; ?>}}
    <?php endforeach; ?>
    <?php endif; ?>
    Nun möchte ich aber auf die Seite, die den jeweiligen Artikel enthält, verlinken (die Seiten enhalten jeweils nur 1 Artikel).

    Ich habe es bereits mit einer verschachtelten Schleife inkl. folgender Zeilen versucht, aber funktioniert hat es leider nicht:
    PHP-Code:
    <?php if (count($this->articles)): ?>
    <?php foreach ($this->articles as $article): ?>
        <?php if (count($this->pages)): ?>
        <?php foreach ($this->pages as $page): ?>
    Wie lässt sich das lösen?

    Das Ergebnis sollte in Etwa wie folgt aussehen:
    HTML-Code:
    <a href="[Seiten-URL]">[Artikel-Titel]</a>
    <p>[Artikel-Teaser]</p>
    Wenn ich für Seite und Artikel den gleichen Alias vergebe, müsste es doch eigentlich funktionieren, oder (man könnte also {{link_url::*}} mit dem Artikel-Alias aufrufen)? Nur wäre das ziemlich unpraktisch.

    Viele Dank!

    Gruß JaiBee
    Zuletzt geändert von JaiBee; 13.07.2011, 23:29. Grund: Gelöst
  • MarcusMüller
    Gesperrt
    • 01.12.2010
    • 53

    #2
    Füge einfach mal einfach den Code hier in das Template ein:
    PHP-Code:
    <pre><?php echo $this->showTemplateVars(); ?></pre>
    und liste hier dann einfach mal alle Variabel auf.
    Grüße Marcus

    Kommentar

    • JaiBee
      Contao-Nutzer
      • 12.11.2010
      • 178

      #3
      Simple Lösung: &lt;?php echo $article['pid']; ?&gt;

      Zitat von MarcusMüller Beitrag anzeigen
      Füge einfach mal einfach den Code hier in das Template ein: [PHP]<pre><?php echo $this->showTemplateVars(); ?></pre>[/PHP
      Gute Idee! Die ID der Seite (pid) wird tatsächlich ausgegeben, hier der entprechend gekürzte Ausschnitt:

      PHP-Code:
          [articles] => Array
              (
                  [0] => Array
                      (
                          [id] => 21
                          [pid] => 21
                          [title] => XX XX
                          [alias] => xx-xx
      
                      )
      
                  [1] => Array
                      (
                          [id] => 25
                          [pid] => 23
                          [title] => YY YY
                          [alias] => yy-yy
                      )
      
              ) 
      
      Daher kann die PID mit <?php echo $article['pid']; ?> ausgegeben werden.

      In meinem Fall ergibt dies schließlich folgenden Code:
      PHP-Code:
      <?php if (count($this->articles)): ?>
      <?php foreach ($this->articles as $article): ?>
              <a href="{{link_url::<?php echo $article['pid']; ?>}}">{{article_title::<?php echo $article['alias']; ?>}}</a>
              {{article_teaser::<?php echo $article['alias']; ?>}}
      <?php endforeach; ?>
      <?php endif; ?>
      Die Lösung ist damit eigentlich ganz simpel.

      Vielen Dank, MarcusMüller, dass du mich auf den richtigen Ansatz gebracht hast.

      Gruß JaiBee

      Kommentar

      Lädt...