Druckversion / Printer friendly

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

Druckversion / Printer friendly

Beitrag von brother.t »

Servus zusammen,

ich hab' jetzt einige Zeit damit verbracht, das Forum sowie diverse Internetseiten zu durchforsten, um eine einfache und funktionierende Loesung zu finden, wie ich unter jede Seite im Front-End einen Link setzen kann, der eine Druckversion der aktuellen Seite oeffnet.

Der Ansatz, eine <print_content.php> mit dem Code der <front_content.php> anzulegen, welche dann nur ein anderes Layout bekommen soll, ging vielleicht frueher mal, scheint bei der V4.4.0 nicht mehr zu greifen, denn in der <front_content.php> steht ja recht wenig Code, der tatsaechlich eine HTML-Seite beschreibt.

Ebenso wenig klappt es bei mir, fremde Skripte (z.B. PHPrint.php oder printer-friendly.com) unter Contenido zum Laufen zu bringen. Fehlermeldungen sehe ich hier dann zwar keine, aber irgendeinen anderen Effekt leider ebenso wenig. Vielleicht stelle ich mich bei diesen externen Skripten aber auch einfach zu dumm an, oder habe Contenido noch nicht ausreichend durchschaut ...

Also weiss vielleicht jemand eine einfache Loesung? Sowas wie: Lege einfach nur ein neues, print-optimiertes Layout an und verwende es dann fest ueber diesen und jenen Parameter im URL, den ich einfach an den Link am Seitenende dranhaenge ... So oder sonst irgendwie.

Gibt's denn da gar nichts? :cry:
Madinson
Beiträge: 52
Registriert: Di 7. Okt 2003, 13:57
Wohnort: Köln
Kontaktdaten:

printer-friendly

Beitrag von Madinson »

http://www.cj-design.com/index.php?id=downloads&page=4

Hier findest du ein nettes Scripting unter den Bedingungen der GNU.

Da es auf einer einfachen Bereichsmarkierung beruht....könnte man stets vor die Textcontainer...<!--start--> und entsprechend <!--end--> setzen..
webwebweb...
brother.t
Beiträge: 17
Registriert: Di 15. Jul 2003, 22:04
Kontaktdaten:

Leider nicht die Loesung ...

Beitrag von brother.t »

Hallo Madinson,

vielen Dank fuer deine Antwort. Scheint, als stuende ich ziemlich alleine mit meinem Problem. :( Wunder mich, ehrlich gesagt, aber so ist das wohl.

Solche Skripte (wie das von cj-design.com) habe ich schon versucht einzubinden (PHPrint.php bzw. printer-friendly.com), doch leider ohne Erfolg. Das Problem ist, dass diese Skripte alle davon ausgehen, dass man eine statische oder zumindest 'regulaer' aus Header, Footer, etc. zusammengebaute Seite hat, die das Skript dann entsprechen verstuemmeln und neu ausgeben kann. Doch das ist hier ja nicht der Fall!

Bei Contenido uebernimmt die /cms/front_content.php die Ausgabe, und das z.T. auf unergruendlichen (oder zumindest sehr verzweigten) Wegen. Sprich: Direkt in der front_content.php gibt es keine Ausgabe, auf die ich die Print-Skripte ansetzen koennte. Meiner bescheidenen Meinung nach ist da der (zumindest fuer mich) unueberwindbare Knackpunkt.

Ich hoffe ja immer noch darauf, dass sich einer vom Entwicklerteam mit einem goettlichen Tipp, Skript oder gar Modul oder sonstwas meldet, das mit dieser front_content.php funktioniert ... *seufz*

Trotzdem, wie gesagt, vielen Dank.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

kleiner tipp ad. header und footer

setzt es doch in dein layout hinein...
zB nach <body> sowas wie

<!-- PRINTABLE STARTS //-->

<!-- PRINTABLE ENDS //-->

die front_content.php brauchst nicht angreifen...
die bereiche was wo gedruckt werden soll kann so definiert werden...
brother.t
Beiträge: 17
Registriert: Di 15. Jul 2003, 22:04
Kontaktdaten:

Naeher dran, aber noch nicht geloest ...

Beitrag von brother.t »

Die HTML-Kommentare setze ich ja auch ins Layout und nicht in die <front_content.php>. Den Link zur <printpage.php> setze ich ich ebenfalls fest ins Layout:

Code: Alles auswählen

<a href="/cms/printpage.php?<?php echo $QUERY_STRING; ?>" target="_blank">Diese Seite drucken</a>
Soweit, so gut. Doch wenn ich jetzt den Link klicke, will mir das Skript die aktuelle Seite ja auslesen, was irgendwie nicht so recht klappen will:

Warning: feof(): supplied argument is not a valid File-Handle resource in /PFAD/cms/printpage.php on line 18

Warning: fread(): supplied argument is not a valid File-Handle resource in /PFAD/cms/printpage.php on line 19

... und diese beiden Fehler wiederholen sich dann unendlich.

Der dazugehoerige Code der <printpage.php> als Auszug:

Code: Alles auswählen

<?php

include("print_config.php");

// End of Editing ----------------------------------------------------------------------------------------//

$from = $HTTP_REFERER;

	if (!preg_match("/$domain/", $from)) {
		header("Location: print_noaccess.php");
		exit;
	} 
	else{
    echo($from);
		if ($from != ""){
			$read = fopen($HTTP_REFERER, "rb");
			$value = "";
				while(!feof($read)){
					$value .= fread($read, 4096); 
				}				
				fclose($read);
			$start= strpos($value, "$startingpoint"); 
			$finish= strpos($value, "$endingpoint"); 
			$length= $finish-$start;
			$value=substr($value, $start, $length);

		function imgsrc_strip($variable){
			return(eregi_replace("<img src=[^>]*>", "", $variable));
		}
		function imgbor_strip($variable){
			return(eregi_replace("<img border=[^>]*>", "", $variable));
		}	
		function i_stripf($variable){
			return(eregi_replace("<font[^>]*>", "", $variable));
		}

	$printpage = ("$value"); 
	$printpage = imgsrc_strip("$printpage");
	$printpage = imgbor_strip("$printpage");

	$printpage = i_stripf("$printpage");
	$printpage = str_replace( "</font>", "", $printpage );
	$printpage = stripslashes("$printpage"); 

	}
}

?>

[...]
Vielleicht versteht ihr mein Problem jetzt? Ich naemlich nicht. :(
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

wie ist den der inhalt der print_config.php ?
sieht mir nach einem konfigurationsproblem aus...
brother.t
Beiträge: 17
Registriert: Di 15. Jul 2003, 22:04
Kontaktdaten:

Beitrag von brother.t »

Danke fuer die schnelle Antwort und Hilfsbereitschaft!
Hier der Code der Config-Datei:

Code: Alles auswählen

<?php

// Edit the following variables -------------------------------------------------------------//

$title = "Printer Friendly Version";
$domain = $SERVER["SERVER_NAME"];  // change to your domain name, be specific but no "www"
$startingpoint = "<!--startprint-->";
$endingpoint = "<!--endprint-->";
$nonreferer = "Please link a page to the script";
$nosent = "No Referer Sent";
$website = "DIE WORTWERKSTATT";

//--- Edit The Stylesheet Here! ----------------------------------------------------------//

$font="courier new";				// eg.  courier new, verdana, arial, tahoma
$fontcolor="#000000";				// hex colour value
$fontsize="10pt";					// enter size in 'pt' i.e: 10pt
$hrcolor="#000000";				// enter 'Horizontal Line' colour

//--- End of Config

?>
Meiner Meinung nach steht in der config nix wildes drin ... Oder?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

tja witzig habs mal schnell getestet, eigentlich gehts bei mir...

was schreibt er dir den hin bei echo ($from); ?
brother.t
Beiträge: 17
Registriert: Di 15. Jul 2003, 22:04
Kontaktdaten:

echo ($from);

Beitrag von brother.t »

Fuer echo ($from); gibt er mir http://wow.sensoscope.net/cms/front_con ... p?idcat=18 aus. Das stimmt aber doch alles so, oder??[/code]
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ja eigentlich stimmt das..

sag mal welche php version läuft auf deinem gerät...
brother.t
Beiträge: 17
Registriert: Di 15. Jul 2003, 22:04
Kontaktdaten:

Umgebung

Beitrag von brother.t »

Meine zwei Umgebungen:

- WinXP
- Apache 2.0.43
- PHP 4.3.0
- MySQL 3.23
- Contenido 4.4.0

bzw.

- Linux
- Apache 1.3 (??)
- PHP 4.2.3
- MySQL 3.23
- Contenido 4.4.0

Auch hier vermute ich nichts boeses ... Und die Skripte funktionieren auf beiden Servern nicht. Aber raetsel' ruhig weiter! Du bist meine einzige Hoffnung. Mein Grashalm.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

probier mal das (habs aber nicht getestet)

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 != ""){ 

         ob_start();
         $value = @readfile($from);
         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;
         }

         $start= strpos($value, "$startingpoint"); 
         $finish= strpos($value, "$endingpoint"); 
         $length= $finish-$start; 
         $value=substr($value, $start, $length); 

      function imgsrc_strip($variable){ 
         return(eregi_replace("<img src=[^>]*>", "", $variable)); 
      } 
      function imgbor_strip($variable){ 
         return(eregi_replace("<img border=[^>]*>", "", $variable)); 
      }    
      function i_stripf($variable){ 
         return(eregi_replace("<font[^>]*>", "", $variable)); 
      } 

   $printpage = ("$value"); 
   $printpage = imgsrc_strip("$printpage"); 
   $printpage = imgbor_strip("$printpage"); 

   $printpage = i_stripf("$printpage"); 
   $printpage = str_replace( "</font>", "", $printpage ); 
   $printpage = stripslashes("$printpage"); 

   } 
} 

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

Beitrag von brother.t »

Gute Idee. Da waer ich schonmal gar nicht drauf gekommen ... Allerdings:

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

Ist echt der Hammer. $from existiert zwar, aber anscheinend kann das Skript weder ueber readfile noch ueber fopen/feof/fread den Inhalt daraus lesen ... Ich hoffe nur, dir sagt das nun irgendwas -- mir naemlich nicht. ;-(
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

sag mal ist die seite von der du das aufrufst irgendwie pw geschützt... ?
brother.t
Beiträge: 17
Registriert: Di 15. Jul 2003, 22:04
Kontaktdaten:

Beitrag von brother.t »

nope. nichts.
Gesperrt