einfache Druckversion mit Vorschau als "Modul"

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

einfache Druckversion mit Vorschau als "Modul"

Beitrag von yodatortenboxer » Do 15. Jul 2004, 13:31

Hallo,

ich habe einmal eine einfache einfache Umsetzung einer Druckversion als Modul gemacht. Als erstes habe ich ein "Modul" Drucken geschrieben das im Ausgabeteil des Moduls folgenden Inhalt hat und auf eine Datei print.php verweist. Als Anzeige dient dann nur ein Drucken-Button:

Code: Alles auswählen

<?php
echo"
<table align='left' width='100%' border='0' cellspacing='0' cellpadding='0'>
  <tr><form name='drucken' method='POST' target='_blank' action='print.php'>
    <td align='center' valign='bottom' height='21'>
      <input name='print_htmlhead' type='hidden' id='print_htmlhead' value='CMS_HTMLHEAD[1]'>
      <input name='print_htmlsubhead' type='hidden' id='print_htmlsubhead' value='CMS_HTMLHEAD[2]'>
      <input name='print_html' type='hidden' id='print_html' value='CMS_HTML[1]'>
      <input name='print_img' type='hidden' id='print_img' value='CMS_IMG[2]'>
      <input type='image' value='drucken'src='images/_druck.gif' alt='druck' align='bottom' border='0'>&nbsp;&nbsp;
    </td></FORM>
  </tr>
</table>"; 
?>
Um die Daten an die print.php zu übertragen habe ich für jedes Modul dessen Inhalt ich drucken möchte (Modul Text, Modul Headline, Modul Bild)ein Hidden-Feld mit der jeweiligen Variable angelegt.
Das Beispiel für das Feld für den HTML Text:

Code: Alles auswählen

<input name='print_html' type='hidden' id='print_html' value='CMS_HTML[1]'>
Danach habe ich eine print.php erstellt und sie in das gleiche Verzeichnis wie die front_content.php kopiert. Das Layout dieser Datei kann dann angepasst werden wie es benötigt wird.Der komplette Inhalt meiner print.php ist wie folgt:

Code: Alles auswählen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Druckvorschau</title>
<style type="text/css">
<!--
body,td,th {
	color: #000000;
}
body {
	background-color: #FFFFFF;
}
-->
</style>
<link rel="stylesheet" type="text/css" href="css/format.css" media="screen"> 
<link rel="stylesheet" type="text/css" href="css/format_p.css" media="print"> 
</head>
<body>
<table border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>
<?php
$druck_headline= str_replace('\\','',$HTTP_POST_VARS[print_htmlhead]);
$druck_subheadline= str_replace('\\','',$HTTP_POST_VARS[print_htmlsubhead]);
$druck_html= str_replace('\\','',$HTTP_POST_VARS[print_html]);
$druck_img=str_replace('\\','',$HTTP_POST_VARS[print_img]);
echo "<font class=headline1>".$druck_headline."</font><br><br>";
?>
    </td>
	<td><img src="<?= $druck_img; ?>"></td>
  </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2"><font class=text><?= $druck_subheadline; ?></font></td>
  </tr>
  <tr>
    <td colspan="2"><font class=text><?= $druck_html; ?></font></td>
  </tr>
  <tr>
    <td colspan="2" align="right"><a href="javascript:window.print();"><img src="drucken.gif" alt="" width="98" height="23" border="0"></a></td>
  </tr>
</table>
</body>
</html>
Die Übergabe des Inhaltes erfolgt hier an folgender Stelle der Datei:

Code: Alles auswählen

$druck_headline= str_replace('\\','',$HTTP_POST_VARS[print_htmlhead]);
$druck_subheadline= str_replace('\\','',$HTTP_POST_VARS[print_htmlsubhead]);
$druck_html= str_replace('\\','',$HTTP_POST_VARS[print_html]);
$druck_img=str_replace('\\','',$HTTP_POST_VARS[print_img]);
Es werden hier also die Inhalte des Formulars des Druckmodules übergeben und in neuen Variablen gespeichert die ich dann an der Stelle wo ich will wieder ausgeben kann.

Beispiel Texte:

Code: Alles auswählen

<tr>
    <td colspan="2"><font class=text><?= $druck_subheadline; ?></font></td>
</tr>
Beispiel Bilder:

Code: Alles auswählen

<tr>
<td><img src="<?= $druck_img; ?>"></td>
</tr>
Nun habe ich überall wo ich dieses Modul einsetzen möchte ein zusätzlichen Container in in das Layout eingefügt und dann im Template diesen Container das Druck-Modul zugeordnet.

Für meine Zwecke langt es. Ich habe es nur für Detailseiten benötigt die aus 4 Modulen wie Headline, Subheadline, Bild und Text bestehen. Mein Layout der print.php wird noch angepasst aber die technische übergabe funktioniert. Wer es einmal sehen möchte:

http://www.netter.de/Contenido/cms/fron ... p?idcat=11
http://www.netter.de/Contenido/cms/fron ... =108&m=&s=


Ich hoffe vieleicht einigen geholfen zu haben.


mfg

yodatortenboxer

emergence
Beiträge: 10643
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Do 15. Jul 2004, 17:36

jetzt hab ich wirklich suchen müssen um den print button zu sehen... wenn man es nicht weiss übersieht man's leicht...
*** make your own tools (wishlist :: thx)

kenzo
Beiträge: 112
Registriert: Di 8. Jul 2003, 19:46
Kontaktdaten:

Klasse gemacht, einfacher geht es nicht!

Beitrag von kenzo » Do 15. Jul 2004, 21:57

Dankeschön,

denke das gehört auch mal wieder gesagt.
Habs gleich eingesetzt und es funzt prima!

8)

kenzo
Beiträge: 112
Registriert: Di 8. Jul 2003, 19:46
Kontaktdaten:

Re: einfache Druckversion mit Vorschau als "Modul"

Beitrag von kenzo » Mo 19. Jul 2004, 10:35

yodatortenboxer hat geschrieben: <input name='print_htmlhead' type='hidden' id='print_htmlhead' value='CMS_HTMLHEAD[1]'>
<input name='print_htmlsubhead' type='hidden' id='print_htmlsubhead' value='CMS_HTMLHEAD[2]'>
<input name='print_html' type='hidden' id='print_html' value='CMS_HTML[1]'>
<input name='print_img' type='hidden' id='print_img' value='CMS_IMG[2]'>
Habe das modul eingesetzt,

funktioniert prima.

Eine kleine Sache ist aber etwas störend:

Wenn der Inhalt der Container via hidden Inputfelder übergeben wird, so wird dieser im Backend Editormodus angezeigt.
Ich sehe also da den gesamten Text, der sowieso schon in den aufgerufenen Containern steht noch einmal
In Frontend ist alles i.o.

Gibt es da noch eine andere Möglichkeit?
Hat jemand das gleiche Problem?

Danke für Eure Vorschläge

beka2
Beiträge: 2
Registriert: Sa 6. Mär 2004, 23:24
Kontaktdaten:

Mensch,

Beitrag von beka2 » Di 20. Jul 2004, 22:25

da gibt es sogar Vibratortische ;-)

die gelben Schaltflächen im Seitenfuß sind wirklich schlecht zu erkennen.

Lepkojus
Beiträge: 65
Registriert: Fr 5. Mär 2004, 10:42
Kontaktdaten:

Beitrag von Lepkojus » Mo 26. Jul 2004, 14:02

Im MOdul Druckansicht mußt du die input-felder mit einer abfrage abfangen.
If (!$contenido){
...dann inputfelder}
else{
..keine nur den button
}
$contenido ist true, wenn du dich im backend befindest.
Grüße
Hartmut Lepkojus

kenzo
Beiträge: 112
Registriert: Di 8. Jul 2003, 19:46
Kontaktdaten:

Beitrag von kenzo » Mo 26. Jul 2004, 22:07

Lepkojus hat geschrieben:Im MOdul Druckansicht mußt du die input-felder mit einer abfrage abfangen.
If (!$contenido){
...dann inputfelder}
else{
..keine nur den button
}
$contenido ist true, wenn du dich im backend befindest.
Ähhm wie mache ich das?
Hast du eine kleine anleitung für mich?

Hab nicht so viel ahnung von php :oops:

Wo trage ich das denn ein?

THX

Lepkojus
Beiträge: 65
Registriert: Fr 5. Mär 2004, 10:42
Kontaktdaten:

Beitrag von Lepkojus » Di 27. Jul 2004, 08:27

Mein Modul "Druckansicht" habe ich folgendermaßen abgeändert:
1. ! heißt in php "Nicht"
2. php lernen hilft dir unbedingt weiter in Contenido
3. Am Ende habe ich noch ein Zurückbutton eingefügt (s. www.ntcg.de )
4, Im Backend wird nur das Image angezeigt, und keine hidden input-felder

Code: Alles auswählen

<?php
echo "
	<table border='0' cellspacing='0' cellpadding='0'><tr>
	<form name='drucken' method='POST' target='_blank' action='print.php'>
	<td>";
    
if (!$contenido){
   echo "
      <input name='print_htmlhead' type='hidden' id='print_htmlhead' value='CMS_HTMLHEAD[1]'>
      <input name='print_htmlsubhead' type='hidden' id='print_htmlsubhead' value='CMS_HTMLHEAD[2]'>
      <input name='print_html' type='hidden' id='print_html' value='CMS_HTML[1]'>
      <input name='print_img' type='hidden' id='print_img' value='CMS_IMG[2]'>
      <input type='image' value='drucken' src='images/netco/druckansicht.gif' alt='Druckansicht' border='0'><br>";
 
    }
else{
   echo "<input type='image' value='drucken' src='images/netco/druckansicht.gif' alt='Druckansicht' border='0'><br>";
}
echo "
</td></FORM>
<td>&nbsp;</td>
<td><a href='javascript:window.history.back()'><img src='images/netco/back.gif' width='17' height='24' alt='Zurück'  border='0'></a></td>
<td>&nbsp;</td>
</tr>
</table>";
?>
Grüße
Hartmut Lepkojus

OAA
Beiträge: 134
Registriert: Sa 15. Nov 2003, 15:54
Wohnort: Regensburg
Kontaktdaten:

Beitrag von OAA » Do 2. Sep 2004, 13:08

Hallo,

bei mir läuft keines der Module.

Kann hier nochmal jemand komplett posten wie es funzt?

ich habe auf meiner Seite 3 Links
- einen um durch einen Anker wieder nach oben zu kommen
- einen, um den Inhalt als pdf darzustellen
- einen als Link zur druckfreundlichen version.

Doch leider ist der letztere ohne Funktion.
Muss ich den als extra modul anlegen?

VLg
OA

mhl
Beiträge: 67
Registriert: Mi 18. Aug 2004, 21:59
Wohnort: Salzburg
Kontaktdaten:

Text statt Bild

Beitrag von mhl » Do 16. Sep 2004, 18:44

Hallo.

Vorab vielen Dank für das großartige Modul. Ist wirklich spitze.
Vielen Dank auch an Lepkojus zur Bereinigung im Backend. Das hat meinen Redakteur vorher ganz schön verunsichert...

Was anderes: ich würde gerne statt dem Icon einen Text verwenden. So zB "Seite drucken"

Hier mein Output Code:

Code: Alles auswählen

<?php 
echo"
<table border='0' cellspacing='0' cellpadding='0'>
 <tr><form name='drucken' method='POST' target='_blank' action='print.php'>
  <td>";
if (!$contenido){ 
echo" 
<input name='print_htmlhead' type='hidden' id='print_htmlhead' value='CMS_HTMLHEAD[1]'> 
<input name='print_htmlsubhead' type='hidden' id='print_htmlsubhead' value='CMS_HTMLHEAD[2]'> 
<input name='print_html' type='hidden' id='print_html' value='CMS_HTML[1]'> 
<input name='print_img' type='hidden' id='print_img' value='CMS_IMG[2]'> 
<input type='image' value='drucken' src='images/printer.gif' alt='Seite drucken' border='0'><br>"; 
} 
else{ 
echo "<input type='image' value='drucken' src='images/printer.gif' alt='Seite drucken' border='0'><br>"; 
} 
echo " 
</td></FORM> 
</tr> 
</table>"; 
?>
Kann mir jemand helfen?

Besten Dank im voraus!

MHL


NACHTRAG: ich habe mich gerade tierisch geärgert, weil das PrintThisPage Modul mir Teile des Text (HTML) Moduls oberhalb des Druckenbuttons angezeigt hatte. Ich bin nicht draufgekommen was es war, doch am Schluss fand ich die Lösung: im alt-Text des img dürfen gewisse Zeichen nicht vorkommen (zB ' oder "). Also, in Zukunft darauf achten!

mhl
Beiträge: 67
Registriert: Mi 18. Aug 2004, 21:59
Wohnort: Salzburg
Kontaktdaten:

Konkurrenz zwischen Modul Druckansicht und Modul Text (HTML)

Beitrag von mhl » Fr 17. Sep 2004, 14:31

Hallo.

Bitte nicht hau'n! :oops:

Ich habe mich lange mit dem Modul Druckansicht beschäftigt, und es klappt auch großartig. Nur einen massiven Schönheitsfehler hat es:

im Textfeld (Modul Text (HTML)) darf unter keinen Umständen ein Anführungszeichen vorkommen, sonst wird der Text ab dem Anführungszeichen oberhalb des Moduls Druckansicht angezeigt. Das beschränkt mich natürlich in meiner Schreibweise schon sehr, und ist sicher leicht behebbar (hoffentlich). Vielleicht kann mir jemand einen Tipp geben, wie ich das hinbekomme.

Hier mein Output Code:

Code: Alles auswählen

<?php 
echo"
<table border='0' cellspacing='0' cellpadding='0'>
 <tr><form name='drucken' method='POST' target='_blank' action='print.php'>
  <td>";
if (!$contenido){ 
echo" 
<input name='print_htmlhead' type='hidden' id='print_htmlhead' value='CMS_HTMLHEAD[1]'> 
<input name='print_htmlsubhead' type='hidden' id='print_htmlsubhead' value='CMS_HTMLHEAD[2]'> 
<input name='print_html' type='hidden' id='print_html' value='CMS_HTML[1]'> 
<input name='print_img' type='hidden' id='print_img' value='CMS_IMG[2]'> 
<input type='image' value='drucken' src='images/printer.gif' alt='Seite drucken' border='0'><br>"; 
} 
else{ 
echo "<input type='image' value='drucken' src='images/printer.gif' alt='Seite drucken' border='0'><br>"; 
} 
echo " 
</td></FORM> 
</tr> 
</table>"; 
?>
Besten Dank.

Max

PS: Contenido 4.4.4

Rolf Herrmann
Beiträge: 101
Registriert: Fr 6. Aug 2004, 12:44
Kontaktdaten:

Druckansicht

Beitrag von Rolf Herrmann » Di 19. Okt 2004, 11:03

Lepkojus hat geschrieben:Mein Modul "Druckansicht" habe ich folgendermaßen abgeändert:
1. ! heißt in php "Nicht"
2. php lernen hilft dir unbedingt weiter in Contenido
3. Am Ende habe ich noch ein Zurückbutton eingefügt (s. www.ntcg.de)
4, Im Backend wird nur das Image angezeigt, und keine hidden input-felder

<?php
echo "
<table border='0' cellspacing='0' cellpadding='0'><tr>
<form name='drucken' method='POST' target='_blank' action='print.php'>
<td>";

if (!$contenido){
echo "
<input name='print_htmlhead' type='hidden' id='print_htmlhead' value='CMS_HTMLHEAD[1]'>
<input name='print_htmlsubhead' type='hidden' id='print_htmlsubhead' value='CMS_HTMLHEAD[2]'>
<input name='print_html' type='hidden' id='print_html' value='CMS_HTML[1]'>
<input name='print_img' type='hidden' id='print_img' value='CMS_IMG[2]'>
<input type='image' value='drucken' src='images/netco/druckansicht.gif' alt='Druckansicht' border='0'><br>";

}
else{
echo "<input type='image' value='drucken' src='images/netco/druckansicht.gif' alt='Druckansicht' border='0'><br>";
}
echo "
</td></FORM>
<td>&nbsp;</td>
<td><a href='javascript:window.history.back()'><img src='images/netco/back.gif' width='17' height='24' alt='Zurück' border='0'></a></td>
<td>&nbsp;</td>
</tr>
</table>";
?>
Funz prima nur es gibt da zwei Fehler im Script irgenwo.

1. Warum sehe ich im Backend in den Artikel die Eintrag doppelt. Keine Witze bin völlig nüchtern.´

Bitte um Hilfe.

Gruss Rolf

JoS
Beiträge: 16
Registriert: Mi 29. Sep 2004, 14:55
Kontaktdaten:

Popup-Fenster ohne die Browserbars

Beitrag von JoS » Di 19. Okt 2004, 18:04

Hallo yodatortenboxer,

danke ersmal für das Skript - ist erste Sahne :P

Noch eine Frage: Wie kann ich das Popup-Fenster so einbringen, wies auf Deiner Seite ist. Ohne Navbars und dem Zeugs??

Hab schon einiges versucht, jedoch irgendwie klappts nicht .

Danke
Jos

uups
Beiträge: 116
Registriert: Fr 16. Jan 2004, 09:08
Kontaktdaten:

Beitrag von uups » Mi 24. Nov 2004, 03:46

im Textfeld (Modul Text (HTML)) darf unter keinen Umständen ein Anführungszeichen vorkommen, sonst wird der Text ab dem Anführungszeichen oberhalb des Moduls Druckansicht angezeigt. Das beschränkt mich natürlich in meiner Schreibweise schon sehr, und ist sicher leicht behebbar (hoffentlich). Vielleicht kann mir jemand einen Tipp geben, wie ich das hinbekomme.
1. Warum sehe ich im Backend in den Artikel die Eintrag doppelt. Keine Witze bin völlig nüchtern.´
Bei mir geschieht das auch bei verschiedenen Artikeln. Zusätzlich stehendan links neben dem druck.gif noch folgende Zeichen: Konnte dieser Fehler schon behoben werden?

Das macht das ansonsten gute Modul unbrauchbar!

Uups...

hesse
Beiträge: 59
Registriert: Di 2. Nov 2004, 17:01
Kontaktdaten:

Beitrag von hesse » Di 12. Apr 2005, 12:23

Hallo habe jetzt auch das Script jetzt eingespielt ... weiß irgendjemand wie man das beheben kann das sobald ein Text Anführungszeichen nur noch Chaos entsteht.

Ist evtl irgendwie möglich alle Anführungszeichen rauszufiltern?

Kann man php irgendwie unterscheiden lassen, ob sich Anfürgungszeichen im Tag oder nicht im Tag befinden ?

Gruß
Markus

Gesperrt