Contao-Camp 2024
Ergebnis 1 bis 39 von 39

Thema: Meine PDF_PAGE_ORIENTATION wird immer wieder überschrieben

  1. #1
    Contao-Fan Avatar von dtptiger
    Registriert seit
    20.06.2009.
    Ort
    Nürnberg
    Beiträge
    816

    Standard Meine PDF_PAGE_ORIENTATION wird immer wieder überschrieben

    Hallo,
    die Contao-Konfigurationsdatei tcpdf.php im Verzeichnis vendor/contao/core-bundle/src/Resources/contao/config/ wird immer wieder von P auf L zurückgesetzt.
    P scheint irgendwo als Standart hinterlegt zu sein.
    Wie kann ich den Standart updatesicher hinterlegen?
    In der DCA?
    Fragt
    dtptiger

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Da das eine Konstante ist, kannst du das nur mit runkit_constant_redefine update sicher überschreiben.

  3. #3
    Contao-Fan Avatar von dtptiger
    Registriert seit
    20.06.2009.
    Ort
    Nürnberg
    Beiträge
    816

    Standard

    Yeah
    Wenn das klappt wäre das wunderbar, verrätst Du auch wo ich diesen PHP-Schnippsel verwenden kann?
    Nach dca oder yml schauts für mich nicht aus.

    Gruß dtptiger

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Das müsstest du zB in die app/Resources/contao/config/config.php geben.

  5. #5
    Contao-Fan Avatar von dtptiger
    Registriert seit
    20.06.2009.
    Ort
    Nürnberg
    Beiträge
    816

    Standard runkit_constant_redefine ist als sehr schwierig zu Bezeichen

    Hi Spooky,

    wir haben das untersucht, doch ...

    Code:
     runkit_constant_redefine('PDF_PAGE_ORIENTATION', 'L');
    ... ein PHP-Entwickler (bis dato wenig Contaoerfahrung) mit dem ich gerne zusammenarbeite schreibt:
    runkit_constant_redefine vergiß einfach,
    der führt direkt in Teufels Küche.
    ... Das ist ein wirklich cooles Brecheisen! Damit
    kann man unmögliche Sachen machen (z.B. Konstanten redefinieren).
    Es ist ganz klar ein Tool für die Entwicklungsumgebung, in einer
    Produktivumgebung hat es nichts zu suchen.
    Und runkit ist nicht PHP-7-fertig

    Tja, was jetzt tun unter Conato 4 und PHP7?

    PDF_PAGE_ORIENTATION ist als Konstante definiert.
    Und dieser Datentyp heißt genau deshalb 'Konstante', damit man eine Konstante definieren kann.
    Blöderweise überschreibt Contao bei irgendeinem update die von mir definierte Konstante und bildet sich ein "P" wäre die einzig wahre Konstante.

    Sollte ich das mal als Ticket aufmachen?

    Gruß
    dtptiger

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Contao definiert diese Konstante, du kannst sie daher (ohne dem Brecheisen) nicht ändern.

  7. #7
    Contao-Fan Avatar von dtptiger
    Registriert seit
    20.06.2009.
    Ort
    Nürnberg
    Beiträge
    816

    Standard

    Das ist doof
    Ist doch Portrait nicht sinnvoller als Landscape.
    Dann ist das nicht wirklich zu Ende gedacht.
    Oder man könnte das direkt beim PDF erzeugen neu definieren.
    Habe zwar keine Ahnung wie das PDF geschrieben wird, aber die config schreibt ja das PDF nicht, von dort wird gelesen und dann im PHP verarbeitet.
    Da könnte doch noch was abzufangen sein.
    Hm ...
    Gruß dtptiger

  8. #8
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.792

    Standard

    Zitat Zitat von dtptiger Beitrag anzeigen
    Ist doch Portrait nicht sinnvoller als Landscape.
    Sehe ich nicht so. In meiner Praxis im Büro und besonders beim Ausdrucken von Webseiten hat Hochformat das absolute Übergewicht. Querformat kommt doch eher selten vor, wenn man z.B. sehr breite Tabellen hat. Bei Dir wird es wohl andersherum sein. Die Websiite ist viel breiter als hoch und es gibt nur breite Tabellen.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    @dptiger du musst entweder runkit_constant_redefine benutzen oder eine eigene PDF Lösung, eine andere Möglichkeit sehe ich nicht .

  10. #10
    Contao-Nutzer Avatar von Norbert2
    Registriert seit
    30.07.2012.
    Ort
    Bayreuth
    Beiträge
    7

    Frage

    Ein offizieller Weg scheint mir eine Contao-Extension zu sein, die dafür sorgt, daß irgendwo im System irgendeine Checkbox nicht auf 'P' sondern auf 'L' steht. Ist das realistisch? Ist das mit Kanonen auf Spatzen schießen?

    @dtptiger, hier eine Frage, damit ich mir die Sache vorstellen kann. Also in tcpdf.php wird beim Update der Wert von 'L' auf 'P' zurückgesetz. Wie kommt er denn vorher auf 'L' ? • Du editierst die Datei manuell • Du änderst den Wert vom BE aus • Der Wert kann in einer Dialogbox vor jedem Druckvorgang geändert werden

    Bye, N.
    ...- .. ... .. - -- -.-- .-- . -... ... .. - . ...
    http://www.trilo.de
    -. --- .-. -... . .-. - -- .- .. . .-.

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Eine Lösung wäre den printArticleAsPdf Hook zu benutzen - wo du dann deine eigene Implementierung vornehmen kannst.

  12. #12
    Contao-Nutzer Avatar von Norbert2
    Registriert seit
    30.07.2012.
    Ort
    Bayreuth
    Beiträge
    7

    Standard

    printArticleAsPdf Hook
    Spooky, danke für das Stichwort! Ich werde der Sache nachgehen. (Kann ein paar Wochen dauern, bis ich mich zurückmelde.)

    Bye, N.
    ...- .. ... .. - -- -.-- .-- . -... ... .. - . ...
    http://www.trilo.de
    -. --- .-. -... . .-. - -- .- .. . .-.

  13. #13
    Contao-Fan Avatar von dtptiger
    Registriert seit
    20.06.2009.
    Ort
    Nürnberg
    Beiträge
    816

    Standard

    Sehe ich nicht so. In meiner Praxis im Büro und besonders beim Ausdrucken von Webseiten hat Hochformat das absolute Übergewicht. Querformat kommt doch eher selten vor, wenn man z.B. sehr breite Tabellen hat. Bei Dir wird es wohl andersherum sein. Die Websiite ist viel breiter als hoch und es gibt nur breite Tabellen.
    " kommt doch eher selten vor" ist, mit Verlaub, nicht besonders Zielführend. Denn was Du bei einer Lösung brauchst, kann bei einer anderen Anforderung ganz anders sein.

    Der wirkliche kasusknaksus ist, das eine variable Formatierung keine Konstante sein kann.

    Ein Konstante ist z.B. cm oder inch, Grad oder Fahrenheit.

    Weder Rot, noch Fettgestellt, noch das Papierformat sind Konstanten.
    Das ist eher eine historisch bedingte Eigenheit.
    Contao ist in zig Sprachen übersetzt, und alle haben A4 Porträt als preset????

    Gruß
    dtptiger

  14. #14
    Contao-Fan Avatar von dtptiger
    Registriert seit
    20.06.2009.
    Ort
    Nürnberg
    Beiträge
    816

    Standard

    @Norbert2
    die tcpdf.php kann nur manuell, per FTP und Editor, bearbeitet werden.

    Die untersten Beiträge:
    https://community.contao.org/de/show...5576&styleid=8

  15. #15
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Die tcpdf.php solltest du nicht editieren.

  16. #16
    Contao-Fan Avatar von dtptiger
    Registriert seit
    20.06.2009.
    Ort
    Nürnberg
    Beiträge
    816

    Standard

    Und nun????

    Wo A4-Hochformat bzw Querformat definieren?
    Gibt es eine Möglichkeit, die PDF-Ausgabe in einem Template so zu steuern, dass wahlweise ein A4-Hochformat bzw Querformat generiert wird?
    Die Eingaben in mpdf/scr/Mpdf.php bewirken nichts.
    Contao 4.4.24, Anwendungs-Cache immer gelöscht.

    transform: rotate(90deg) im CSS wird ignoriert.

    Wo/wie kann ich A4-Hochformat bzw Querformat definieren?


    08.10.2018, 10:57 #19

    do_while:

    Eigentlich kommt das aus der Contao-Konfigurationsdatei tcpdf.php im Verzeichnis vendor/contao/core-bundle/src/Resources/contao/config/

    Dort ist PDF_PAGE_ORIENTATION festgelegt
    'P' = Portrait
    'L' = Landscape (Querformat)
    Gruß Hagen

  17. #17
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Zitat Zitat von dtptiger Beitrag anzeigen
    Und nun????
    Was du tun kannst wurde ja bereits erklärt

  18. #18
    Contao-Fan Avatar von dtptiger
    Registriert seit
    20.06.2009.
    Ort
    Nürnberg
    Beiträge
    816

    Standard

    OKOKOK :-)

  19. #19
    Contao-Fan Avatar von dtptiger
    Registriert seit
    20.06.2009.
    Ort
    Nürnberg
    Beiträge
    816

    Standard

    @Spooky

    Verzeih, nur mal kurz Inhaltlich, bin ich da wirklich daneben?
    Der wirkliche kasusknaksus ist, das eine variable Formatierung keine Konstante sein kann.

    Ein Konstante ist z.B. cm oder inch, Grad oder Fahrenheit.

    Weder Rot, noch Fettgestellt, noch das Papierformat sind Konstanten.

  20. #20
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.060
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Doch, auch "Rot" oder "Fettgestellt" sind Konstanten. Wenn allerdings z.B. das CSS color:red; z.B. für eine Schriftfarbe gemeint ist, dann ist "red" immer noch eine Konstante, obwohl man die Schriftfarbe des Elements im CSS auch einfach anders wählen oder überschreiben kann. Rot bleibt trotzdem Rot, auch wenn man die Schriftfarbe auf Blau setzt. cm, inch, Fahrenheit sind keine Konstanten, sondern Einheiten.

  21. #21
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Zitat Zitat von dtptiger Beitrag anzeigen
    Verzeih, nur mal kurz Inhaltlich, bin ich da wirklich daneben?
    Ich glaube du missverstehst, was mit einer "Konstante" gemeint ist: wir sprechen hier von PHP Konstanten, die mittels \define(…) gesetzt werden.

  22. #22
    Contao-Fan Avatar von PaddySD
    Registriert seit
    26.10.2016.
    Ort
    Andechs
    Beiträge
    656

    Standard

    Ob Du da inhaltlich daneben bist oder nicht, ist doch gar nicht die Frage So wie Du es siehst, ist es nicht. Wenn Du es ändern willst, kannst Du es wie oben beschrieben tun, oder Du machst einen Feature Request bei github auf. So einfach ist das.

    Beim FR siehst Du dann auch gleich, ob das nur beu Dir so ist, je nach Resonanz.

  23. #23
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.060
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Also einen entsprechenden Feature-Request würde ich definitiv unterstützen. Eine Konstante zu ändern mag prinzipiell böse sein und jede Menge Seiteneffekte haben. Aber in dem vorliegenden Fall hier scheint mir die Gefahr doch eher gering zu sein.

  24. #24
    Contao-Fan Avatar von PaddySD
    Registriert seit
    26.10.2016.
    Ort
    Andechs
    Beiträge
    656

    Standard

    Ich würde eher dazu tendieren, dass in einer Erweiterung des tcpdf-bundle zu machen. Die Erweiterung sollte dann eine Art config-panel darstellen, wo man eben auch andere Dinge wie Seitengrösse usw einstellen könnte.

    Hat @do_while sowas nicht eh schon im Angebot? Da war doch was mit pdf-Erweiterungen, oder?

  25. #25
    Contao-Fan Avatar von dtptiger
    Registriert seit
    20.06.2009.
    Ort
    Nürnberg
    Beiträge
    816

    Standard

    Konkret habe ich das do-while/contao-mpdf-template-bundle in Verwendung.

    Das ist alles schnieke
    Die Randbereiche lassen sich im Backend definieren.
    Doch mehr leider nicht.

    Ich verwende die Extension für eine Urkunde von Genossenschaftsmitgliedern einer Brauerei Genossenschaft - ja einige wollen Urkunden -
    Und diese Urkunde ist dooferweise quer.

    Gruß
    dtptiger

  26. #26
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Dann erstelle hier einen Feature Request, dass die Extension nicht einfach nur die PDF_PAGE_ORIENTATION Konstante von Contao bzw. dem contao/tcpdf-bundle nehmen sollte, sondern dass es in irgendeiner Form konfigurierbar ist (mit Fallback auf die Konstante).
    Geändert von Spooky (24.02.2019 um 19:44 Uhr)

  27. #27
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.060
    Contao-Projekt unterstützen

    Support Contao

    Standard

    LOL, ich denk um wunder was es hier geht. Eine Urkunde im Querformat ist mir in meinem bisherigen Leben noch nicht untergekommen. Und ich habe so einige in meiner Sammlung.

  28. #28
    Contao-Fan Avatar von dtptiger
    Registriert seit
    20.06.2009.
    Ort
    Nürnberg
    Beiträge
    816

    Standard

    @Spooki
    Danke für den Link und den Text, habe genau das angefragt.

    @tab
    Tja, man lernt nie aus

  29. #29
    Contao-Nutzer Avatar von Norbert2
    Registriert seit
    30.07.2012.
    Ort
    Bayreuth
    Beiträge
    7

    Standard Provisorischer Holzhammer

    Provisorische Arbeitserleichterung : Holzhammer-Assistent landscape.php.txt

    Soweit ich verstehe gibt es für @dtptiger auf die Schnelle keine andere Lösung, als in der tcpdf.php manuell PDF_PAGE_ORIENTATION von 'P' aufm 'L' zu setzen. @Spooky hat ja oben im Konjunktiv gesprochen, nicht absolut:

    Die tcpdf.php solltest du nicht editieren.
    Einzig die Umsetzung des Feature-Requests auf contao-mpdf-template-bundle wird reguläre Abhilfe schaffen. Oder es kommt eine anderweitige separate aufwändige Lösung unter Zuhilfenahme des printArticleAsPdf Hook. Auf jeden Fall wird es eine Weile dauern.

    Um bis dorthin das unselige Editieren der tcpdf.php zu erleichtern, habe ich kurzerhand den Holzhammer-Assistent landscape.php.txt geschrieben. @dtptiger, lege dieses Skript ins Web-Verzeichnis und entferne die Dateinamenserweiterung '.txt'. Dann rufe es auf mit https://www.mycontaosite.lum/landscape.php. Lese den Quelltext, um die vier Nuancen des Meldetextes zu unterscheiden. Lasse das Skript eventuell als Cronjob laufen.

    Das Skript kann beliebig oft aufgerufen werden, und es ändert in der tcpdf.php die Zeile "\define('PDF_PAGE_ORIENTATION', 'P');" das P in L, sofern das nicht bereits geschehen ist.

    Was die Sicherheit betrifft kann ich kein ernstes Problem erkennen. Ein Surfer, der diese Adresse aufruft, sieht eine Nachricht betreffs der PDF-Orientierung, aber anstellen kann er nichts. An System-Information sickert durch, daß die PDF-Orientierung etwas Spezielles hat.

    Schon klar, daß das nicht die feine Art ist.

    Worauf ich neugierig wäre, ist eine Einschätzung durch die Kolleginnen und Kollegen : • Wie böse ist das? • Ist es sicher? • Warum darf man sowas nicht tun? • Ist es vielleicht nur gräßlich hässlich, aber sonst schon o.k.?

    Bye,
    N.
    ...- .. ... .. - -- -.-- .-- . -... ... .. - . ...
    http://www.trilo.de
    -. --- .-. -... . .-. - -- .- .. . .-.

  30. #30
    Contao-Nutzer Avatar von manjarco
    Registriert seit
    16.11.2010.
    Ort
    Solingen
    Beiträge
    91

    Standard

    Bei mir funktioniert das neu Definieren der Konstanten in der app/Resources/contao/config/config.php mittels runkit_constant_redefine nicht. Dafür aber ein einfaches \define();
    Ist diese Lösung irgendwie problematisch?

  31. #31
    Contao-Nutzer Avatar von Norbert2
    Registriert seit
    30.07.2012.
    Ort
    Bayreuth
    Beiträge
    7

    Standard

    Welche Konstante? In meinem Contao 4.4/4.6 gibt es keine app/Resources/contao/config/config.php, nur src/Resources/contao/config/config.php, und da drin sind keine \define(), die sind in tcpdf.php.
    ...- .. ... .. - -- -.-- .-- . -... ... .. - . ...
    http://www.trilo.de
    -. --- .-. -... . .-. - -- .- .. . .-.

  32. #32
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Er meint, er hat sich selbst die Konstanten definiert - wobei das nicht funktionieren sollte.

  33. #33
    Contao-Nutzer Avatar von manjarco
    Registriert seit
    16.11.2010.
    Ort
    Solingen
    Beiträge
    91

    Standard

    Hmm… aber es funktioniert. Wenn es das nicht soll wäre ich dafür, dass es nicht als bug sondern als feature akzeptiert werden könnte

    Die app/Resources/contao/config/config.php habe ich selbst angelegt und die für mich relevanten defines aus der tcpdf.php übernommen:

    Code:
    <?php
    
    namespace Contao;
    
    \define('K_PATH_FONTS', TL_ROOT . '/files/Theme/fonts/pdf/');
    \define('PDF_MARGIN_HEADER', 0);
    \define('PDF_MARGIN_FOOTER', 0);
    \define('PDF_MARGIN_TOP', 0);
    \define('PDF_MARGIN_BOTTOM', 0);
    \define('PDF_MARGIN_LEFT', 0);
    \define('PDF_MARGIN_RIGHT', 0);
    Auch nach dem Löschen des Caches ist damit noch alles tutti und die PDF-Ausgabe macht was sie soll (und ja, ich habe die tcpdf.php wieder auf ihre ursprünglichen Werte zurück gesetzt).

  34. #34
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Ah, ja - das kann tatsächlich funktionieren . Denn die config.php wird vor der der tcpdf.php inkludiert (letztere wird nämlich nur direkt in der ModuleArticle.php inkludiert - also zumindest in Contao 4.4).

  35. #35
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.135

    Standard

    Hey,

    konnte man früher nicht einfach unter system/config/ ablegen wo auch die localconfig liegt?
    Liebe Grüße
    WebRoxx


  36. #36
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Kannst du auch jetzt noch, ist aber nicht der empfohlene Weg.

  37. #37
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.135

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Kannst du auch jetzt noch, ist aber nicht der empfohlene Weg.
    Okay.
    Liebe Grüße
    WebRoxx


  38. #38
    Contao-Fan Avatar von Fachinger
    Registriert seit
    24.04.2016.
    Ort
    Limburg
    Beiträge
    308

    Standard

    Die tcpdf.php im Pfad /system/config ist doch ein Symlink. Spätestens beim Update gibt das dann Mecker....

    Gesendet von meinem CLT-L29 mit Tapatalk

  39. #39
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Zitat Zitat von Fachinger Beitrag anzeigen
    Die tcpdf.php im Pfad /system/config ist doch ein Symlink. Spätestens beim Update gibt das dann Mecker....

    Gesendet von meinem CLT-L29 mit Tapatalk
    Die Lösung ist ja auch eine Andere (siehe vorige Postings).

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •