Artikelinformationen drucken

Hallo liebe Oxid Community,
für meinen neuen Shop hätte ich gerne einen Druckbutton, der die jeweiligen Artikelinformationen druckt, also Bild, Beschreibung, Preis, usw…

Das sollte ja im Grunde kein Problem sein, es müsste ein neue dynamische Seite beim Klick auf den Button erstellt werden, die dann jeweils sowas beinhaltet wie [{$oView->getActPicture()}], und dann wird die Seite über javascript:window.print() gedruckt.
Nur wie erstelle ich diese dynamische Seite? :smiley:

Ich hoffe Ihr könnt mir weiterhelfen,
Robin

Warum denkst du, dass man dafür eine dynamische Seite braucht?
Bemühe mal bisschen Google und dann weißt du, wie man es eigentlich macht.

Also wenn mich nicht alles täuscht, dann ist bei einer statischen HTML-Seite die Druckversion auch einfach nur ne statische Seite eben nur mit dem Text.
Da Oxid aber die Seiten aus der Datenbank erzeugt, ist meine erste Idee gewesen, Oxid dazu zu bringen, eine neue Seite zu erzeugen, in der die ganzen Menüs usw. eben nicht eingebunden sind, sondern nur so was wie Text, Bilder, Preise.
Wenn es aber nen tollen Trick gibt, um das Menü auszublenden und das ganze dann noch zu drucken, wäre ich dir sehr dankbar für ein Stichwort für meine Google-Suche, und ja, ich habe bereits nach Druckversion erzeugen gesucht, und ich weiß auch, dass das ganze über ne zweite CSS geht, in der ich alle nicht gebrauchten Elemente ausblende, da die oxid.css allerdings mehrere Tausend Zeilen hat, dachte ich es sei etwas viel, bei jedem div Tag dann nochmal display:none zu schreiben und es sei einfacher, eine neue Seite erstellen zu lassen.
Ich lasse mich aber gerne eines Besseren belehren. :wink:

Du hast den Sinn hinter der zweiten css Datei nicht verstanden. Du musst nicht Oxid.css kopierten und überall Display:None setzen, sonst du hast eine zweite css, in der du nur die unnötigen Elemente ausblendest

Das ist mir schon klar, aber das sind ja trotzdem einige Einträge, die ausgeblendet werden müssen, aber ich werde es jetzt so machen.
Eine Frage habe ich aber noch, wie binde ich die css so ein, dass sie auch nur für den Druck benutzt wird, [{oxstyle include=“css/print.css” media=“print”}] funktioniert nicht, da wird nur die css ganz normal eingebunden.

Würde mich auch interessieren, wie ich die Css für den Druck richtig einbinden kann, da wie der Vorposter schon sagte [{oxstyle include=“css/print.css” media=“print”}] in base.tpl nicht funktioniert.

Viele Grüße, (:

warum nimmst du nicht den ganz normalen HTML Tag dafür?

<link rel="stylesheet" type="text/css" href="print.css" media="print" />

Stimmt :smiley:
Danke das klappt sehr gut.

Ansonsten gehen natürlich auch Media-Queries (https://developer.mozilla.org/de/docs/Web/CSS/@media)

Also einfach in der normalen CSS einen Abschnitt

@media print {
  ...
}

einfügen.

Hat den Vorteil, dass kein weiter HTTP Request an den Server geschickt wird, welcher erst bearbeitet werden muss, was Zeit kostet.
Deshalb sollten auch wenn möglich alle CSS Dateien und JS Dateien in eine große Datei gemerged werden.