Aktuelles / BlogAktuelles / Blog

Neueste Meldungen, Hintergrundinfos, HOW-TOs

...und vieles mehr nur hier im Blog

Weitere Informationen zu Contentpapst Weitere Informationen zum CP::Shop

Neueste Beiträge


Entwickler-Blog: Tipps & Tricks

<< zum vorherigen Eintragzum nächsten Eintrag >>

CP::Forms: Einträge in einer Druckansicht darstellen (Sa, 24.06.2006)

Einträge aus datenbankbasierten CP::Forms-Modulen können über die sogenannten "Statischen Seiten" den Besuchern sehr einfach zusätzlich in einer Druckversion bereitgestellt werden. Dazu benötigen Sie nur 1-2 neue Vorlagen, sowie einen Link in der bestehenden Vorlage für die Detailansicht eines Eintrages. Bevor wir beginnen, sollten Sie sich aber zuerst in der Anleitung den Beitrag über die "Statischen Seiten" durchlesen. Mit diesem Wissen kann dann die Umsetzung beginnen.

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&amp;oid={cp:forms:dataset:number}&amp;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.


RSS-Feed abonnieren RSS-Feed abonnieren

Blog-Eintrag kommentieren

Um einen Kommentar zu diesem Beitrag zu verfassen, können Sie sich im folgenden Formular entweder manuell mit Benutzername und Email-Adresse identifizieren oder aber Sie loggen sich über ein vorhandenes Profil bei Facebook, Twitter, OpenID etc. ein. Auf Wunsch haben Sie die Möglichkeit, sich automatisch über weitere Kommentare informieren zu lassen.

<< zurück

Weitere Einträge in der Kategorie "Tipps & Tricks"

Hier finden Sie die eBusiness-/eCommerce-Spezialisten von sandoba.de:
https://www.sandoba.de/blog/tipps-und-tricks/cpforms-eintraege-in-einer-druckansicht-darstellen/