Drucken von Beiträgen

  • Joomla Version
    5.0.1
    PHP Version
    PHP 8.2.x
    Hoster
    Strato
    Link (URL) zur Seite mit dem Problem
    https://www.hansundkarin.de/rezepte/hauptspeisen/1288-bobotie

    Hallo, ich brauche schon wieder eure Hilfe!

    Ich habe auf manchen Seiten einen Druck-Button eingefügt. Z.B. bei allen Rezepten.



    Ein Beispiel ist https://www.hansundkarin.de/re…hauptspeisen/1288-bobotie


    Sinn ist, das die Seite, die gerade angezeigt wird, auf einem neuen Tab als Ausdruck angezeigt wird und man dann von dort aus den Print-Dialog aufrufen kann. Das sieht dann so aus:



    Dahinter liegt folgende PHP:



    Dies klappt auch manchmal. Aber, wie ich jetzt festgestellt habe, nur wenn der Cache geleert ist. Dann klappt es einige Male und irgendwann bekommt man die darüber liegende Aufstellung als Druckseite angezeigt. Ich vermute, es liegt an:

    Code
    $this->link = '';

    Vor Release 5 hatte ich den Cache ausgeschaltet, da hat es immer geklappt. Aber ich wollte die Möglichkeit nutzen, mit eingeschaltetem Cache die Antwortzeit zu verbessern. Nur --- jetzt bekommt man die darüber liegende Seite als Druck angeboten. Ziemlich blöd!

    Hat jemand eine Idee, was ich ändern muss?


    Viele Grüße

    HAns

  • Du kannst das Rezept mit zum Beispiel einem Schreibprogramm deiner Wahl erstellen und ein PDF daraus generierern.
    Dieses legst Du unter images/.... sinnvoll ab.

    Dann kannst Du in einem Beitrag die Kette (Link) nehmen und dort dann das PDF auswählen.

    Du kannst ja noch ein PDF Bildchen in klein vor den Link setzen. Sieht optisch hübscher aus.


    Oder die Felder Funktion nutzen.

  • Ich habe noch nicht ganz verstanden, was du machst ... aber die Druckversion einer Seite lässt sich ganz einfach mit entsprechenden CSS Anweisungen anpassen (@media print { ... }
    Du kannst z.B. dir mein Blog anschauen: https://www.dr-menzel-it.de/blog/autor-seite-fuer-joomla-4
    wenn du im Browser auf Drucken klickst, wird nur der Inhalt des Beitrags ausgegeben. Um es den Besuchern einfacher zu machen, könntest du den Drucken-Befehl in einem Override vom Artikel packen.

  • Konnte dein Problem zuest gar nicht nachstellen.


    Dann ist mir aber doch eine nachvollziehbare Fehlerbeschreibung gelungen:


    Wenn man bei dir irgendeine Website die deinen "Drucken-Button" enthält aufruft z.B. diese:


    www.hansundkarin.de/rezepte/hauptspeisen


    Dann ist dadurch anschließend dieser Drucken-Button im Server-Cache deiner Website und wird auf

    allen weiteren Seiten dieser Kategorie Hauptspeisen

    identisch mit identischem Linkziel ausgeliefert.


    Also ist der Drucken-Button dort

    www.hansundkarin.de/rezepte/hauptspeisen/1288-bobotie

    danach identisch bzw. führt zum identischen Linkziel !


    Es liegt also daran wie du diesen Drucken-Button eingebunden hast und nicht an der von dir vermuteten Datei!

  • Ich habe noch nicht ganz verstanden, was du machst ... aber die Druckversion einer Seite lässt sich ganz einfach mit entsprechenden CSS Anweisungen anpassen (@media print { ... }
    Du kannst z.B. dir mein Blog anschauen: https://www.dr-menzel-it.de/blog/autor-seite-fuer-joomla-4
    wenn du im Browser auf Drucken klickst, wird nur der Inhalt des Beitrags ausgegeben. Um es den Besuchern einfacher zu machen, könntest du den Drucken-Befehl in einem Override vom Artikel packen.

    Hallo Viviane,

    toller Tipp! Vielen Dank. Ich habe gleich mal deinen CSS-Einbau einfach kopiert, ohne zu wissen, was passiert:


    Code
    /* Ausdruck gestalten */
    @media print {
    #mod-custom164 {
    display: none;
    }

    Wenn du jetzt STRG+P drückst siehst du das Ergebnis, schon nicht schlecht!

    Jetzt, wo du mir Appetit gemacht hast, würde ich natürlich den Ausdruck gerne noch ein wenig schöner machen. z.B. die Kommentare nicht ausdrucken oder auch den Kopf etwas eleganter darstellen. Ich habe mal unter #mod-custom164 geschaut, aber dazu nichts gefunden. Hast du vielleicht noch einen Tipp, wo ich eine Erklärung finde, was ich da nutzen könnte? Unter @media print habe ich leider nur Allgemeinplätze gefunden.

    Liebe Grüße

    Hans

  • Das ist mein print CSS in meinem Template, du muss natürlich die Klassen an deinem Template anpassen. Es gibt viele Artikel im Netz, wo man sich Inspiration holen kann. #mod-custom64 ist eine Ergänzung damit das seitliche Module (Dienstleister) nicht angezeigt wird.

  • Das ist mein print CSS in meinem Template, du muss natürlich die Klassen an deinem Template anpassen. Es gibt viele Artikel im Netz, wo man sich Inspiration holen kann. #mod-custom64 ist eine Ergänzung damit das seitliche Module (Dienstleister) nicht angezeigt wird.

    Habe ich mir gleich mal kopiert als Basis für meine eigenen Seiten. Das muss ich natürlich anpassen an mein Template von Joomla51.


    Danke!

  • Gerne! Ich finde die ursprüngliche Quelle nicht mehr ... irgendwo hatte ich so eine Basisdatei gefunden und die an meine Bedürfnisse angepasst

    Ich habe inzwischen einiges gelesen, aber letztlich ohne Erfolg.

    Im Moment habe ich die CSS-Ergänzung so übernommen, wie du sie hier oben angehängt hast. Aber ich habe es nicht verstanden. So habe ich am Ende eines Beitrags eine Klasse ccomment, die ich gerne nicht ausdrucken würde. Also habe ich drei Versionen versucht, aber keine hat geklappt. Ich verstehe nicht, welche ID ich hier wie eintragen muss und wann ein Punkt davor muss. Da scheinen mir grundsätzliche Kenntnisse zu CSS zu fehlen. hmm;(;(


    erster Versuch:

    Code
    media print {
      .logo, nav, aside, header, footer, .container-banner, .pager {
      display: none;}
     
          #ccomment {
            display: none;}
    }

    zweiter Versuch:

    Code
    media print {
      .logo, nav, aside, header, footer, .container-banner, .pager, .ccomment  {
      display: none;}
    }

    dritter Versuch:

    Code
    media print {
      .logo, nav, aside, header, footer, .container-banner, .pager, .ccomment  {
      display: none;}
    }
  • Also @ ist bei dir diesbezüglich vorhanden ??

    Wo hast du deinen obigen Code aus #14 inclusive @ eingefügt?

    Ich sehe derzeit bei dir auf der Website bezüglich @media print insbesondere:


    Code
    @media print {.logo, nav, aside, header, footer, .container-banner, .pager {display:none;}}

    Es fehlt also

    #ccomment

  • Ich hatte dann wieder alle Einträge heraus genommen, da sie nichts gebracht haben. Ich habe jetzt ccomment wieder eingefügt. Jetzt sieht es so aus:

    Code
    @media print {
      .logo, nav, aside, header, footer, .container-banner, .pager, #ccomment {
      display: none;}
    }

    Aber wie gesagt, ich habe keine Idee, ob ich ccomment mit # oder mit . oder ohne alles eintragen muss. Ergebnis ist aber bei allen Versuchen, dass der Kommentar weiterhin mit gedruckt wird. ;(;(

  • Nach einigem warten bis dein Server die Datei auch geändert und nicht aus dem cache ausliefert ist nun die Wirkung wie gewünscht. Du must eventuell auch deinen Browser-Cache löschen.


    Ob du #ccomment oder .ccomment verwendest ist in diesem Fall egal weil im Seitenquelltext beginnt der Kommentarteil mit:


    Code
    <div class="ccomment" id="ccomment">

    # bedeutet gilt für id

    . bedeutet gilt für class


    Du könntest übrigens auch beides verwenden.


    Code
    @media print {
      .logo, nav, aside, header, footer, .container-banner, .pager, #ccomment, .ccomment {
      display: none;}
    }