Skip to main content
Screenshot BreezingForms Standard PDF Template

BreezingForms Mailback mit PDF-Anhang

PDF-Datei für den Versand mit dem BreezingForms Mailback erstellen

Die Joomla-Formular-Komponente BreezingForms bietet dem Webdesigner ja die Möglichkeit, nach dem Abschicken des Formulars durch den Benutzer automatisch eine Email-Benachrichtigung zu versenden (siehe Artikel „Joomla-Tipp: Email-Benachrichtigung mit BreezingForms“). Seit der Version 1.7.1 gibt es außerdem die Möglichkeit, diesem Email auf komfortable Art eine PDF-Datei anzuhängen. 

Dieser PDF-Anhang kann beliebige Inhalte aus dem abgeschickten Formular enthalten. Zusätzlich können Informationen zum Benutzer und natürlich auch eigene, frei definierte Texte enthalten sein.

 

Template-Verzeichnis 

Wie schon beim Mailback (automatische Email-Benachrichtigung) wird der Aufbau der PDF-Datei über eine php-Datei, oder das PDF-Template  definiert. Das Standard PDF-Template von BreezingForms findet man auf der Website im Admin-Verzeichnis unter folgendem Pfad: 

JoomlaRoot/administrator/components/com_breezingforms/pdftpl/

Achtung: hier hat sich der Verzeichnis-Name der Joomla Komponenten geändert. Ab Version 1.7.1. heißt es com_breezingforms und nicht mehr com_facileforms!

 

Aussehen bestimmen

Standard-Template

Standardmäßig wirkt das folgende Template, das nach der Installation auch bereits im o. g. Verzeichnis existiert. Dieses gibt die Inhalte des ausgefüllten Formulares sowie einige Daten zum User einfach als Auflistung ohne besondere Formatierung aus. 

  • pdf_attachment.php

 

Die PDF-Datei, die damit erzeugt wird sieht dann ziemlich einfach aus:
Screenshot BreezingForms Standard PDF Template

 

Selbst definiertes Template

Möchte man die PDF-Datei etwas anspruchsvoller gestalten, so muss man dafür eine entsprechend html-formatierte Template-Datei im Template-Verzeichnis zur Verfügung stellen.

Diese Datei muss in dem gleichen Verzeichnis liegen wie das Standard-Template:

JoomlaRoot/administrator/components/com_breezingforms/pdftpl/

 

Und sie muss im Dateinamen den Formularnamen enthalten.

  •  formularname_pdf_attachment.php

 

Beispiel:

Formularname = kontaktformular 

PDF-Template-Datei = kontaktformular_pdf_attachment.php

 

Die PDF-Datei, die aus einem selbst definierten PDF-Template erstellt wird, könnte dann so aussehen:

Screenshot BreezingForms selbst definiertes PDF Template

Inhalt der PDF-Datei formatieren

Der Inhalt der PDF-Datei kann für die selbst definierte Variante frei mit HTML und php-Scripten gestaltet und formatiert werden, wobei allerdings beachtet werden muss, dass nur bestimmte html Tags zugelassen sind (die erlaubten Tags sind im Quellcode der php-Datei in einem Kommentar aufgelistet). Anders als bei der Email-Benachrichtigung können hier auch leider keine Stylesheets verwendet werden; Styles müssen hart formatiert werden, also wie in den Webdesign-Anfängen jedem Element im Quellcode separat zugeordnet werden.

Und so kann dann eine PDF-Template-Datei (z. B. kontaktformular_pdf_attachment.php) aussehen: 

<?php
/**
* BreezingForms - A Joomla Forms Application
* @version 1.7.2
* @package BreezingForms
* @copyright (C) 2008-2010 by Markus Bopp
* @license Released under the terms of the GNU General Public License
**/
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
// IMPORTANT!
// Supported Tags: h1, h2, h3, h4, h5, h6, b, u, i, a, img, p, br, strong, em, font, blockquote, li, ul, ol, hr, td, th, tr, table, sup, sub, small

$txt_name = '';
$txt_email = '';
$txt_telefon = '';
$txt_nachricht = '';

if (count($xmldata)){
   foreach ($xmldata as $data) {
      $value = nl2br(htmlentities(substr(is_array($data[_FF_DATA_VALUE]) ? implode('|',$data[_FF_DATA_VALUE]) : $data[_FF_DATA_VALUE],0,10000), ENT_QUOTES, 'UTF-8'));
      switch($data[_FF_DATA_NAME]){
      case 'txt_name':
          $txt_name = $value;
          break;
      case 'txt_email':
          $txt_email = $value;
          break;
      case 'txt_telefon':
          $txt_telefon = $value;
          break;
      case 'txt_nachricht':
          $txt_nachricht = $value;
          break;
      }
    }
}

?>
</head>
<body>
<p><img height="45" width="504" style="margin: 5px auto; margin-left:0; vertical-align: left; display: block;" alt="Logo von www.webdesign-ostholstein.de" src="http://www.webdesign-ostholstein.de/templates/wdo/images/bb-logo.gif" /></p>
<p>&nbsp;</p>
<h2 style="font-size: 1.1em; color: #FD7805;">&nbsp;<br>Vielen Dank f&uuml;r Ihre Nachricht</h2>
<p style="font-size: 0.8em; color: #333333; font-family: Tahoma, Arial, Geneva, sans-serif; ">Wir haben Ihre Nachricht erhalten und werden uns in K&uuml;rze mit Ihnen in Verbindung setzten. Nachfolgend sehen Sie die Daten, die mit dem Kontaktformular an uns &uuml;bermittelt wurden. </p>
<h3 style="font-size: 1.0em; color: #FD7805;">&nbsp;<br>Hier sind Ihre Daten:  </h3>
<table style="border: none; ">
        <tr>
          <th style="font-size: 0.8em; color: #333333;"><strong>Datum:</strong></th>
          <td style="font-size: 0.8em; color: #333333;"><?php echo date("d.m.Y\ H:i")?></td>
        </tr>
        <tr>
          <th style="font-size: 0.8em; color: #333333;"><strong>Name:</strong></th>
          <td style="font-size: 0.8em; color: #333333;"><?php echo $txt_name; ?></td>
        </tr>
        <tr>
          <th style="font-size: 0.8em; color: #333333;"><strong>Email:</strong></th>
          <td style="font-size: 0.8em; color: #333333;"><?php echo $txt_email; ?></td>
        </tr>
        <tr>
          <th style="font-size: 0.8em; color: #333333;"><strong>Telefon: </strong></th>
          <td style="font-size: 0.8em; color: #333333;"><?php echo $txt_telefon; ?></td>
        </tr>
        <tr>
          <th style="font-size: 0.8em; color: #333333;"><strong>Ihre Nachricht:</strong></th>
          <td style="font-size: 0.8em; color: #333333;"><?php echo $txt_nachricht; ?></td>
        </tr>
  </table>
<p><span style="font-size: 0.8em; color: #333333; font-family: Tahoma, Arial, Geneva, sans-serif; ">&nbsp;<br>
Vielen Dank!<br>
Beate Beermann<br />
&nbsp;    </span></p>
<p style="font-size: 0.8em; color: #FD7805;">&nbsp;<br />
Webdesign und mehr... - Beate Beermann Dipl.-Ing. (FH) - bb@webdesign-ostholstein.de - www.webdesign-ostholstein.de</p>

 

Die Abfrage der verwendeten Formularfelder und Definition der Variablen erfolgt dabei mit dem folgenden Code, den ich in der Knowledge Base von Crosstec Solutions gefunden habe (Link siehe unten):


$txt_name = '';
$txt_email = '';
$txt_telefon = '';
$txt_nachricht = '';

if (count($xmldata)){
   foreach ($xmldata as $data) {
      $value = nl2br(htmlentities(substr(is_array($data[_FF_DATA_VALUE]) ? implode('|',$data[_FF_DATA_VALUE]) : $data[_FF_DATA_VALUE],0,10000), ENT_QUOTES, 'UTF-8'));
      switch($data[_FF_DATA_NAME]){
      case 'txt_name':
          $txt_name = $value;
          break;
      case 'txt_email':
          $txt_email = $value;
          break;
      case 'txt_telefon':
          $txt_telefon = $value;
          break;
      case 'txt_nachricht':
          $txt_nachricht = $value;
          break;
      }
    }
}

 
 

 
Weiterführende Informationen

Zu diesem Thema gibt es im Web noch nicht sehr viele Informationen. Ein wenig findet man in der Knowledge Base von Crosstec Solutions, dem Ersteller von BreezingForms:
Changing the attachment’s PDF template

Changing the export’s PDF template

 

 

Sie benötigen professionelle Ünterstützung bei Joomla? Schreiben Sie mir einfach und ich berate Sie gerne!

BreezingForms, Email Benachrichtigung, Email Template, Email-Benachrichtigung für BreezingForms Formulare formatieren, Formular, joomla!