Anleitung: Druckansicht für unterschiedliche Sprachen in Typo3

In Typo3 ist es relativ simpel, eine Druckansicht für die einzelnen Seiten zu erstellen, um dem Leser das Ausdrucken der Inhalte zu ermöglichen. Etwas schwieriger wird es, wenn man eine Webseite mit zwei oder mehreren Sprachen aufgebaut hat, denn in der Standard-Ausgabe zeigt Typo3 bei der Druckansicht nämlich die Inhalte aller Sprachen an. Das ist natürlich in der Regel nicht erwünscht, denn welcher Leser möchte in einer einzigen Druckvorschau den Seiteninhalt in Deutsch, Englisch, Französisch, usw. angezeigt bekommen?

Aus diesem Grund muss man ein paar Handgriffe erledigen und die Druckansicht ein wenig anpassen.

Teil 1 - Druckansicht einrichten

Um eine Druckansicht für Typo3 einzurichten, müssen zwei Dinge erledigt werden: Zum einen muss ein neues PAGE-Objekt eingerichtet und zum anderen ein Link zur Druckansicht implementiert werden. Der Link zur Druckansicht wird dann so konfiguriert, dass er die aktuelle Seite mit der erweiterten typeNum-Definition geöffnet wird. Die typeNum-Definition haben wir im PAGE-Objekt festgelegt. So viel zum Verständnis.

 Wir beginnen nun, das PAGE-Objekt in das TSetup unserer Seite zu erstellen. Dazu schreiben wir folgendes in das TSetup:

   druck = PAGE
   druck {
   typeNum = 98
   config.index_enable = 0
  
   10 = CONTENT
   10.table = tt_content
   10.select.OrderBy = sorting
   10.select.colPos = 0
      }

Mit diesem Code haben wir eine neue typeNum-Definition erstellt und festgelegt, dass der Inhalt aus der Typo3-Tabelle tt_content kommt. Außerdem soll nur der Inhalt aus der normalen Typo3-Spalte herangezogen werden, Inhalte für Rechts, Links, Rand, usw. werden ignoriert. Als nächstes müssen wir noch das statische Template

Typo3 - Druckansicht Template einbinden

Die Druckansicht kann nun aufgerufen werden, indem man &type=98 an die URL hängt. Nun müssen wir noch einen Link auf jeder Seite plazieren, um dem Leser die Druckansicht zur Verfügung zu stellen. Dazu setzen wir einen Marker in das Template und schreiben folgendes in das TSetup:

 

    druckansicht = TEXT
    druckansicht.wrap = <a href="index.php?id=|&type=98">drucken</a>
    druckansicht.field = uid

Mit diesem Code-Schnipsel wird erreicht, dass auf jeder Seite dynamisch ein Link zur selben Seite mit der Erweiterung &type=98 erzeugt wird, worüber wir letztendlich unsere Druckansicht angezeigt bekommen.

Teil 2 - Druckansicht für mehrere Sprachen anpassen

Typo3-Administratoren, welche eine Seite mit mehreren Sprachen eingerichtet haben, werden sicherlich gemerkt haben, dass sowohl die Inhalte der Default-Sprache als auch die Inhalte der anderen Sprachen angezeigt bekommen. Es ist nun erforderlich, die Druckansicht zu erweitern, so dass nur die Sprachinhalte angezeigt werden, die der Leser gerade auf der Webseite in Anspruch nimmt.

Als erstes müssen wir das PAGE-Objekt anpassen:

   druck = PAGE
   druck {
   typeNum = 98
   config.index_enable = 0
   
   10 = CONTENT
   10.table = tt_content
   10.select.OrderBy = sorting
   10.select.colPos = 0
   10.select.languageField = sys_language_uid
      }

Wie man sieht, haben wir das PAGE-Objekt mit dem wichtigen Eintrag select.languageField = sys_language_uid erweitert. Somit werden nur die Inhalte der aktuellen Sprache herangezogen. Das Problem, das Inhalte verschiedener Sprachen in der Druckansicht angezeigt werden, ist somit behoben.

Jetzt müssen wir noch den Link zur Druckansicht anpassen, denn dieser zeigt immer auf die Default-Sprache, da kein Parameter (&L=1) mitgegeben wird. Das Ziel ist also, dass Typo3 erkennt, welche Sprache der Anwender gerade nutzt, um anschließend für den Link zur Druckansicht den entsprechenden Parameter anzugeben.

Dazu müssen wir den Code für den Link zur Druckansicht komplett ändern:

    druckansicht = COA
    druckansicht {
        10 = TEXT
        10.wrap = <a target="_blank" href="index.php?id=|&type=98
        10.field = uid
        20 = TEXT
        20.wrap = &L=|">drucken</a>
        20.data = GPvar:L
    }

Wenn man sich diesen Code anschaut, erkennt man, dass das erste TEXT-Objekt "10" übernommen wurde, welcher den Link zur aktuellen Seite mit der Erweiterung type=98 erzeugt. Hierbei sei aber gesagt, dass dies nicht der gesamte Link ist, da das schließende "> fehlt.

Das Ende des Links wird im TEXT-Objekt "20" erzeugt, welches nun die aktuelle Sprache ausliest und die benötigten Paramater an den Link einfügt.

Das war eigentlich schon alles und die Druckansicht funktioniert nun auch für mehrere Sprachen. Dieses Tutorial wurde mit Typo3 in der Version 4.0.2 durchgeführt.