Zunächst legen Sie im Vorlagen-Ordner Ihres CP::Forms-Modules eine neue Vorlage für die Druckansicht an. In diesem Beispiel demonstrieren wir dies für ein CP::Forms-Modul für Pressemeldungen mit dem Ordnernamen "forms_press". In diesem Fall muss die Vorlage im Ordner "/modules/forms_press/templates/" abgelegt werden.
Der Name der Vorlage kann frei gewählt werden. Um dem normalen Aufbau der Dateinamen in CP::Forms zu folgen, könnten Sie der Vorlage z.B. den Namen "print_details.html" geben. Diese Datei ist jetzt einmal leer und wird erst später gefüllt werden.
In die Vorlage für die Detailansicht der Einträge (standardmäßig ist dies die Vorlage "/modules/[MODULNAME]/templates/details_public.html") integrieren Sie dann einen Link mit der folgenden URL:
<a href="/{cp:configuration:main:directory}index.php?static=modules/forms_press/templates/print_public.html&oid={cp:forms:dataset:number}&clean=yes" rel="nofollow" target="_blank"><u>Druckversion anzeigen</u></a>
Beim Klick wird hier die gerade angelegte Vorlage aufgerufen. Zusätzlich wird die ID des Eintrages über den Parameter "oid" übergeben und der Parameter "clean" bewirkt, dass das Hauptlayout der Seite nicht mit geladen wird. Alternativ kann die URL auch über ein "onclick"-Event per Javascript aufgerufen werden.
Nun muss die Vorlage "/modules/[MODULNAME]/templates/print_public.html" gefüllt werden. Diese muss den Rahmen der Seite enthalten, d.h. den kompletten <head>-Abschnitt einer HTML-Datei, es müssen die Stylesheets geladen werden usw. Dies kann z.B. folgendermaßen ausschauen:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
<title>{cp:variable:title}</title>
<meta http-equiv="Content-Language" content="de" />
<meta http-equiv="Content-Type" content="text/html; charset={cp:configuration:main:charset}" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="robots" content="index,follow" />
<meta content="10 days" name="revisit-after" />
<meta content="global" name="distribution" />
<meta http-equiv="language" content="de" />
<meta content="Alle" name="audience" />
<meta content="document" name="resource-type" />
<meta content="index, follow" name="robots" />
<meta content="all" name="robots" />
<link rel="stylesheet" href="/{cp:configuration:main:directory}{cp:path}style.css" type="text/css" title="Standard Style" media="screen, projection, print" />
<script type="text/javascript">
<!--
window.print();
//-->
</script>
</head>
<body>
{cp:container module="forms_press" type="details" number="{cp:variable:oid}"}
</body>
</html>
Im <body>-Bereich sehen Sie den Aufruf des CP::Forms-Modules für die Pressemeldungen. Der Containeraufruf wird bei der Verarbeitung dann durch die Darstellung des Eintrages ersetzt und über die Javascript-Funktion "print()" wird beim Aufruf der URL automatisch der Druckdialog des jeweils genutzten Browsers aufgerufen.
Wenn Sie in der Druckansicht nicht die normale Vorlage für die Detailansicht einsetzen möchten, dann können Sie dem Containeraufruf noch den Parameter "template" mit dem Pfad zu einer alternativen Vorlage hinzufügen.