Joomla zeigt in der Blogansicht hinter jedem Blogitem ein Printicon an. Will man dies nicht, sondern nur an der Hauptüberschrift einen Druckbutton für die ganze Seite, dann gibt es dafür keine Option. Kein Thema dachte ich, schließlich kann man einfach mit den Overrides fürs Template die Ausgabe manipulieren. Also nix wie raus mit der Druckoption aus der blogitem.php und reinkopiert in blog.php.

Tja so einfach wars dann leider doch nicht, denn das System quittierte diese Aktion mit einem weißen Screen und einer schönen PHP-Fehlermeldung. Getreu dem Motto: ich lese das Handbuch nur wenn ich Probleme habe, also Foren und Tante G Konsultiert. Das Ergebnis war ernüchternd. Einige waren der Meinung, sowas gehe gar nicht. Aber letztlich ist es nur ein Link. Der muss doch herzuzaubern sein. Schaut man sich an, wie Drucklinks aussehen findet man soetwas:

index.php?tmpl=component&print=1&layout=blogview=category&id=65

Also muss man nur die Kategorie herausfinden. Das ist eine Standardübung:

$this->category->id

Baut man das zusammen, ergibt sich:

$printlink = ‘index.php?tmpl=component&print=1&layout=blogview=category&id=’.$this->category->id

Zum Schluss kopiert man sich den HTML-Code eines Printbuttons und fügt den zusammengebastelten Link rein. Man erhält dann das:

<?php $printlink = ‘index.php?tmpl=component&print=1&layout=blogview=category&id=’.$this->category->id ?>

<ul class=”actions”>

<li class=”print-icon”>

<a rel=”nofollow” onclick=”window.print(this.href, ‘win2′, ‘status=no, toolbar=no, scrollbars=yes, titlebar=no, menubar=no, resizable=yes, width=640, height=480, directories=no, location=no’); return false;” title=”Drucken” href=<?php echo ‘”‘.$printlink.’”‘?>>

<img alt=”Drucken” src=”/media/system/images/printButton.png”>

</a>

</li>

</ul>

Diesen Code kann man an beliebiger Stelle in der blog.php einfügen.

Update. Fehler im JavaScript berichtigt.

2 Responses zu “Printicon für die Blogübersichtsseite”

  1. Mitsuhirato :

    War auf der Suche nach genau so einer Funktion. Sie funktioniert bei mir leider nicht 100%ig (joomla 1.6.2). Das Druck-Icon erscheint zwar, das neue Fenster mit dem Drucklayout ebenfalls, aber der Ausdruck funktioniert über das Icon nicht. Im Code des Druck-Layouts steht der obige Quelltext drin, es müßte aber ein “window.print();” dort stehen.
    Gibt es Abhilfe?

  2. Frank Schäfer :

    Ja, liegt daran, dass ich einen Fehler veröffentlich habe. Im Codeschnipsel muss es natürlich nicht “window.open” sondern “window.print” heißen.

Ihr Kommentar