Druckversion / Printer friendly

brother.t
Beiträge: 17
Registriert: Di 15. Jul 2003, 22:04
Kontaktdaten:

Vielleicht interessant

Beitrag von brother.t »

Vielleicht ist das ja interessant ... Hier nur die ersten paar Zeilen aus dem Skript -- ich hab' noch zwei echos reingesetzt und kommentiert:

Code: Alles auswählen

<?php

include("print_config.php");

$from = $HTTP_REFERER;

  if (!preg_match("/$domain/", $from)) {
    header("Location: print_noaccess.php");
    exit;
  }
  else{
    if ($from != ""){
      echo("<p>1:<b>".$from."</b></p>");   // WIRD AUSGEGEBEN
      ob_start();
      echo("<p>2:<b>".$from."</b></p>");  // WIRD NICHT AUSGEGEBEN!!
      $value = readfile($from);
      echo($value);
      if (false !== $value) { // no readfile error
          $value = ob_get_contents();
      } else {
          $error = "Error ".$from." does not exist!";
      }
      ob_end_clean();

      if ($error) {
          echo $error;
          exit;
      }
Das erste spuckt mir $from noch aus, das zweite schon nicht mehr.

1:http://wow.sensoscope.net/cms/front_con ... p?idcat=18
Error http://wow.sensoscope.net/cms/front_con ... p?idcat=18 does not exist!


Leider reichen meine PHP-Kenntnisse nicht aus, um zu wissen, was denn ob_start(); ist. Aber genau danach ist $from leer.

Hilft dir das irgendwie??
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

soweit ich gesehen habe ist das ja ein entwicklungsserver, sieh dir die apache logs an... (access.log und error.log) da muss was drinnen stehen...

du findest die betreffenden meldungen ganz am ende (nicht die ganze datei dann hier reinkopieren) ich glaub 4-5 zeilen dürften reichen...
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ob_start(); macht nichts anderes wie die ausgabe zu unterdrücken... zb alle echo etc..
$value = ob_get_contents(); weist die zwischen gespeicherte ausgabe der variable $value zu...
ob_end_clean(); läßt die ausgabe wieder zu...

weitere infos http://at.php.net
einfach oben in der function liste suchen...
brother.t
Beiträge: 17
Registriert: Di 15. Jul 2003, 22:04
Kontaktdaten:

Beitrag von brother.t »

Danke, hab' ob_start(); inzwischen nachgeschlagen ... Ist ja gar nicht so kompliziert.

Zu den Log-Files: Auf meinem remote Server (externer Hoster) sind die letzten Aufzeichnungen noch von gestern Nacht ... *gruebel* Seltsam. Ich weiss auch nicht, warum er von heute morgen nichts hat, aber da ist jedenfalls nichts zu holen. Ich hab' die letzten 50 Zeilen auch mal so eben ueberflogen ... Nichts, was auch nur annaehernd von diesem Print-Skript kommt.

Auf meinem lokalen Server ist auch nichts auffaelliges. Die letzten Eintraege sehen alle so aus:

Code: Alles auswählen

[Wed Dec 03 09:56:25 2003] [error] [client 127.0.0.15] File does not exist: PFAD/wow.sensoscope.lh/contenido/styles/images, referer: http://wow.sensoscope.lh/contenido/header.php?changelang=1&changeclient=1&contenido=fd9e5c38632191649df731e7b2d29253
[Wed Dec 03 09:56:42 2003] [error] [client 127.0.0.15] File does not exist: PFAD/wow.sensoscope.lh/contenido/styles/images, referer: http://wow.sensoscope.lh/contenido/header.php?changelang=1&changeclient=1&contenido=fd9e5c38632191649df731e7b2d29253
Also echt nix. Dafuer hat sich aber auf meinem lokalen Server was interessantes getan: Zuletzt hatte ich naemlich das Skript immer gleich online (auf dem remote Server) getestet und den lokalen Server aussen vor gelassen. Das Skript scheint hier aber mehr Fruechte zu tragen:

1:http://wow.sensoscope.lh/cms/front_content.php?idcat=5
2:http://wow.sensoscope.lh/cms/front_content.php?idcat=5


Du erinnerst dich an meine beiden echos? Jetzt werden sie beide ausgegeben. Allerdings sieht der Rest der Seite genauso aus wie die normale Seite, sprich: Mit Header und Footer, mit allem drum und dran -- eben icht wie eine Printversion aussehen sollte. Und ganz unten, unter der Website, steht dann noch:

Fatal error: Maximum execution time of 30 seconds exceeded in C:\Dokumente und Einstellungen\dertim\Eigene Dateien\office\sensoscope\htdocs\wow.sensoscope.lh\cms\printpage.php on line 16

Also wieder das Problem mit dem readfile ... :x
In Zeile steht: $value = readfile($from);

Lass mich raten, die Infos bringen dir so auch viel, oder? *seufz*
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

nein, die info hilft mir nicht sonderlich viel...
lösch den inhalt der error.log und access.log und versuchs nochmal...

bei deinem lokalen server scheint es aber zu gehen...
sonst hättest wieder error bekommen...

verwendest du eine art weiterleitung auf deinem server ? zb mod_rewrite
brother.t
Beiträge: 17
Registriert: Di 15. Jul 2003, 22:04
Kontaktdaten:

Beitrag von brother.t »

Es mag auch an meinem halbgaren PHP-Wissen liegen, aber was mich etwas stutzig macht ist: Warum wird mir denn auf meinem lokalen Server mein 2. echo (2:http://wow.sensoscope.lh/cms/front_content.php?idcat=5) ausgegeben, wenn ob_start(); doch fuer eine Unterdrueckung der Ausgabe sorgt?

mod_rewrite verwende ich nicht, nein.

Das mit den Server-Logfiles werde ich spaeter nochmal angehen. Vielleicht auch erst heute abend ... und mich dann aber auf jeden Fall nochmal melden.

VIELEN DANK aber auf jeden Fall mal bis hierher!! Jetzt goenn' ich dir erstmal ein paar Stunden Ruhe vor mir. :wink:
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

tja die ausgabe wird zwar unterdrückt aber in ob_get_contents(); zwischengespeichert....

und da an $value den wert zugewiesen bekommt hast du zweimal deine ausgabe...

ganz einfach...
Snoopy
Beiträge: 239
Registriert: Mo 15. Sep 2003, 18:45
Kontaktdaten:

Re: Druckversion / Printer friendly

Beitrag von Snoopy »

Mal ein kleines Statement zur Druckerfreundlichen Ausgabe von Contenido.

Easy Version 1
Du erstellst zu jedem Layout ein zweites Layout, welches dann z.B. die Container für die Navigation etc. nicht mehr
enthält. Also z.B gehen wir von der Beispielinstallation aus. Du nimmst in dem zweite layout nur den Teil, der in den beiden Hilfs-TAGS
<!--inhalt--> und <!--inhalt ende--> steht.

Nun erstellst du in diesem Layout noch zwei Container CMS_IMAGE/CMS_LINK für Druck und zurück zur Normalansicht.

Im Standard Layout erstellst du auch einen container CMS_IMAGE/CMS_LINK für den link auf die Druckversion.
Danach bindest du das neue Layout an ein Template, dass Du dann Standard-Druck nennst.

Jetzt musst Du einen neuen Baum in der Kategorie erstellen. Gib dem Baum den Namen Druckversion oder so.
Dort brauchst Du keinen Artikel erstellen. (Ordner bleibt rot, da nie ein Startartikel erzeugt wird)

Wichtig!!!! Du musst nun die Templates deiner normalen Artikel nur noch über die Kategorie zuweisen.

Bei den Eigenschaften der Artikel, die mit einer Druckversion versehen willst, kannst Du nun den Artikel mit
der STRG Taste einer zweiten Kategorie zuweisen. STRG halten und mit der Maus auf Den Druckbaum klicken.

Wenn Du dann in den Baum Druckversion schaust, kannst Du den Artikel ebenso sehen, und zwar mit dem druckerfreundlichen
Layout.

Die Internen Links kannst Dun nun mit den neuen Containern CMS_IMAGE/CMS_LINK auf die jeweils andere Version machen.

Änderst du nachträglich den Standard-Artikel wird der Druck-Artikel parallel geändert.

Die Möglichkeit der Mehrfachzuweisung wird auch im Contenido Handbuch erwähnt (RTMF !!!)

Hardcore Version 2

Du machst alles über CSS-Klassen - remember .dr {display : none; } etc.
Schau Dir doch mal Die Seiten von www.drweb.de an. Am besten speicher eine Seite Lokal ab, dann hast du die nötigen
Informationen. Dort werden zwei Styles benutzt und über ein js jeweils getauscht. Das ganze ist kein Problem komplett
mit Contenido umzusetzen. Du musst das allerdings konsequent durchziehen, Templates für die Nav ebenso überarbeiten.


Gruss Snoopy




:wink:
brother.t
Beiträge: 17
Registriert: Di 15. Jul 2003, 22:04
Kontaktdaten:

Danke!

Beitrag von brother.t »

Endlich. Endlich! :D Dank euch vielmals.

Die Idee mit dem CSS media="print" ist richtig gut. Und die eigentiche Druckversion ist ganz ohne Javascript zu realisieren. Nur der Link ist Javascript.

Die Version fand ich daher auch eigentlich die bisher leichteste und am schnellsten umzusetzende! Weniger "Hardcore". Die "Easy-Version" ist dahingegen um tausend Ecken gedacht und sicherlich muehseliger einzurichten, da man dann ja an jeden Artikel nochmal ran muss, um ihn einer zweiten Kategorie zuzuweisen ... Aber Schwamm drueber! Ich bin gluecklich. Endlich eine umsetzbare Loesung fuer dieses Problem. *strahl*freu*
Die Möglichkeit der Mehrfachzuweisung wird auch im Contenido Handbuch erwähnt (RTMF !!!)
Kann ich nur zu sagen, dass ich sowohl das Handbuch als auch das Whitepaper schon vor einer Weile gelesen habe. Aber wie soll man denn anhand des Handbuchs auf solch eine komplexe "Um-drei-Ecken"-Loesung kommen?? Ausserdem heisst es RTFM. :wink:

Aber nichts fuer ungut. Ich sagte ja schon: Ich bin gluecklich. :)

Tausend Dank an Snoopy und emergence!!!
Snoopy
Beiträge: 239
Registriert: Mo 15. Sep 2003, 18:45
Kontaktdaten:

Re: Danke!

Beitrag von Snoopy »

Probier das andere trotzdem mal mit einer Testinstallation, ist auch einfach.

Das mit dem RTFM war nicht böse gemeint, Ich bin aber im moment ein wenig gefrustet. Es it nämlich toll wenn mal einn Feedback bekommt für die Arbeit, die man sich macht. Bestes Beispiel, das Modul Quickfinder -- 1000mal gesucht, ich hab das Ding dann portiert, -- und gut ist. Wenn ich ein Modul Sauge, sollte man auch eventuell mal ein Feedback posten, dann haben die die Module konvertieren oder Schreiben auch spaß an ihrer Arbeit.

Also Danke für dein Danke :D
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

@snoopy
ich glaub es geht jeden mal so von uns...
axel s.
Beiträge: 18
Registriert: Sa 3. Jan 2004, 10:25
Wohnort: Jena [Thüringen]
Kontaktdaten:

Beitrag von axel s. »

hallo snoopy,

ich habe deine "easy version 1" mal ausprobiert. der gedanke ist prima und ich glaube wenn es funktionieren würde wäre das ne geniale lösung!
ich habe allerdings folgendes problem.
layout, template, neuer baum (druckversion) hat alles prima geklappt.
ich habe jetzt den artikel wie beschrieben im orginal baum und im druckversionsbaum. wenn ich allerdings das template des artikel im druckbaum auf das neue ändere dann ist es im "orginal baum" ebenfalls geändert und somit hinfällig.
der gedanke soll doch sein, dass man den artikel als verküpfte kopie in dem druckbaum mit einem druckfreundlichen layout sehen kann. Oder nicht?
ich habe die version 4.4.2.
kann man dem artikel im druckbaumverzeichnis kein EIGENES template zuweisen?

gruss,
axel
Snoopy
Beiträge: 239
Registriert: Mo 15. Sep 2003, 18:45
Kontaktdaten:

Beitrag von Snoopy »

Du kannst ein Template entweder über die Kategorie zuweisen Schraubenschlüssel oben oder dem Artikel selbst Schraubenschlüssel rechts.

Es geht nur wenn Du strickt die Templates über die jeweilige Baum Kategorie zuweist. Vererbung des Templates auf jeden Artikel in dem jeweiligen Baum.

Übrigens ist diese Idee funktionierend umgesetzt auf der Site http://www.ajus-hamburg.de

Geht doch :wink:
axel s.
Beiträge: 18
Registriert: Sa 3. Jan 2004, 10:25
Wohnort: Jena [Thüringen]
Kontaktdaten:

Beitrag von axel s. »

1000 dank jetzt klappt es!
ich habe noch folgendes problem, dass ich über die volltextsuche immer die seiten des druckbaumes angezeigt bekomme!!

hast du vielleicht noch nen tipp wie ich das umgehen kann?

gruss,
axel
Eddie123
Beiträge: 9
Registriert: Di 15. Jul 2003, 09:16
Kontaktdaten:

Beitrag von Eddie123 »

hmm sah im Artikel am Ende nicht mehr durch :-) .. könnte vielleicht jemand noch eine fertige komplette Lösung posten ?? .. thx schonmal
Gesperrt