Templates anpassen
Für die Anpassung benötigen Sie nur wenige Kenntnisse in HTML und CSS. PHP-Kenntnisse werden standardmäßig nicht benötigt, können jedoch hilfreich sein, wenn Sie spezielle Layouts oder Funktionen erstellen möchten.
Achtung:
Bevor Sie Anpassungen vornehmen, fertigen Sie eine Kopie / ein BackUp an! Wenn Sie Änderungen an den Standardvorlagen vornehmen, werden diese bei Updates überschrieben.
Hinweis:
PDF-Vorlagen werden mit einer PDF-Engine namens mPDF erstellt. Dies bedeutet, dass einige Stile aufgrund der Konvertierung von HTML in PDF möglicherweise nicht funktionieren. Wenn Sie Hilfe beim Styling benötigen, lesen Sie bitte die mPDF-Dokumentation.
Passen Sie den "Look And Feel" an
Beachten Sie zunächst, dass es für jede Vorlage ein grundlegendes Styling gibt. Die Dateien verwenden zwei CSS-Stylesheets und einige hardcodierte Stile. Wenn Sie Ihre Vorlage anpassen möchten, müssen Sie Änderungen an dem fest codierten Teil vornehmen.
Dies bedeutet: Bearbeiten Sie den Inhalt nur zwischen <style>
und </style>
. Bearbeiten Sie die Datei templates.css
nicht, da Änderungen bei Aktualisierungen überschrieben werden.
Erste Schritte
InvoiceFactory liefert bereits viele Daten für alle Vorlagen. Die folgende Tabelle gibt Ihnen einen Überblick darüber, welche Variablen in den Vorlagen verfügbar sind.
Rechnungsvorlagen
Variable | Beschreibung |
---|---|
$invoice | Sie enthält Daten über die Rechnung selbst, den Benutzer, der die Rechnung erstellt hat, und den Kunden, der für die Rechnung ausgewählt wurde. Außerdem werden alle Zahlungen bereitgestellt, wenn sich in der Datenbank Zahlungen befinden. |
$invoice_tax_rates | Enthält Informationen zu allen Steuersätzen, die auf die Rechnung angewendet wurden |
$items | Beinhaltet alle Rechnungspositionen mit ihren entsprechenden Daten. |
$payment_method | Stellt Informationen zur ausgewählten Zahlungsmethode bereit. |
$custom_fields | Benutzerdefinierte Felder für die Rechnung, den Benutzer, den Kunden und, falls verfügbar, für das übergeordnete Angebot. |
$show_item_discounts | Kann verwendet werden, um die zusätzliche Rabattspalte nur anzuzeigen, wenn Rabatte eingegeben werden. |
Angebotsvorlagen
Variable | Beschreibung |
---|---|
$quote | Sie enthält Daten zu den Angeboten, dem Benutzer, der das Angebot erstellt hat, und dem für die Angebote ausgewählten Kunden. |
$quote_tax_rates | Enthält Informationen zu allen Steuersätzen, die auf das Angebot angewendet wurden. |
$items | Beinhaltet alle Angebotspositionen mit ihren entsprechenden Daten. |
$custom_fields | Benutzerdefinierte Felder für das Angebot, den Benutzer und den Kunden. |
$show_item_discounts | Kann verwendet werden, um die zusätzliche Rabattspalte nur anzuzeigen, wenn Rabatte eingegeben werden. |
Wenn Sie wissen möchten, welche Daten in jeder Variablen verfügbar sind, gehen Sie zum unteren Rand der Vorlage und fügen Sie den folgenden Code direkt über dem Tag </body>
. Ersetzen Sie die Rechnung durch den Namen der Variable, nach der Sie suchen möchten.
<pre> <? php print_r ($ rechnung); ?> </ pre>
Wenn Sie die Vorlage jetzt laden, sehen Sie etwas ähnliches, aber mit hundert Zeilen mehr:
stdClass Object ( [client_id] => 13 [invoice_id] => 24 [user_id] => 2 [invoice_group_id] => 8 ...
Dies ist die Liste aller verfügbaren Variablen, bei denen der Teil in Klammern (z. B. invoice_id
) der Name der Variablen und der Teil nach dem =>
der Inhalt der Variablen ist.
Benutzerdefinierte Felder hinzufügen
Benutzerdefinierte Felder arbeiten auf besondere Weise. Da benutzerdefinierte Felder vom Benutzer hinzugefügt werden, kann nicht festgelegt werden, welche Felder verfügbar sind. Daher sucht InvoiceFactory vor dem Drucken der Vorlage nach allen verfügbaren benutzerdefinierten Feldern. Alle Felder werden in der Variablen $custom_fields
gespeichert:
Array ( [invoice] => Array ( [Sent at] => 2018-11-15 [Contributors] => [ 0 => Marty McFly 1 => Jennifer McFly ] ) [client] => Array ( [CRM ID] => 346999-13400 [has Supervisor] => 1 [Supervisors] => 1 ) [user] => Array () [quote] => Array ( [Sent at] => 2018-11-10 [Special discount offered?] => 0 ) )
Die Variable $custom_fields
ist eine Sammlung aller benutzerdefinierten Feldtypen, die alle verfügbaren benutzerdefinierten Felder gruppieren. Wie Sie im Beispiel sehen können, hat die Rechnung ein benutzerdefiniertes Feld mit der Bezeichnung "Sent at" , der Kunde verfügt über ein Feld mit der Bezeichnung " CRM-ID" und so weiter.
Um auf ein bestimmtes benutzerdefiniertes Feld zuzugreifen, müssen Sie das folgende Codebeispiel verwenden:
<?php echo $custom_fields['client']['CRM ID'] ?>
Dabei sollte der Kunde die Gruppe und die CRM-ID die Bezeichnung Ihres benutzerdefinierten Felds sein. Die Verwendung des Codebeispiels würde einfach 346999-13400
in Ihrer Vorlage ausgeben.
Ja / Nein Benutzerdefinierte Felder
Ja / Nein-Felder haben den Wert 1
für Ja und 0
für Nein. Auf diese Weise können Sie das benutzerdefinierte Feld in Bedingungsanweisungen wie folgt verwenden:
<?php if ($custom_fields['quote']['Special discount offered?']) { // Do something here if yes was selected for the 'Special discount offered?' custom field } ?>
Code-Beispiele
Hier eine Liste einiger Beispiele für Code, mit dem Variablen angezeigt werden können.
Ersetzen Sie invoice
mit quote
wenn Sie Angebots-Vorlagen bearbeiten.
Ersetzen Sie variable_name
durch den tatsächlichen Namen der Variablen.
Beschreibung | Code |
---|---|
Fügen Sie eine neue Variable hinzu So fügen Sie der Vorlage eine neue Variable hinzu. Ersetzen Sie variable_name durch den tatsächlichen Namen der Variablen. | <?php echo $invoice->variable_name; ?> |
Formatbeträge Wenn Sie Beträge anzeigen möchten, müssen Sie diesen Code verwenden, um den Betrag im richtigen Format anzuzeigen. | <?php echo format_currency($invoice->variable_name); ?> |
Bedingte Anweisungen Nur Code anzeigen, wenn eine Variable nicht leer ist. Dies kann beispielsweise verwendet werden, wenn Sie die Steuerspalte nicht anzeigen möchten, wenn keine Steuern vorhanden sind. | <?php if(!empty($invoice->variable_name)): ?> -- display any HTML or variables here -- <?php endif; ?> |
Zeigen Sie das Rechnungslogo an Das Logo kann in den Systemeinstellungen festgelegt werden. | <?php echo invoice_logo_pdf(); ?> |
Debugging-Vorlagen
Die PDF-Engine ist nicht all zu gut im Umgang mit HTML Fehlern, die aufgrund von PHP-Fehlern verursacht wurden. Möglicherweise erhalten Sie eine Ausgabe wie diese:
Severity: Notice Message: Undefined offset: 2 Filename: src/Tag.php Line Number: 1806 ...
Um zu wissen, was mit Ihrer Vorlage nicht stimmt, müssen Sie in Ihrem Templatehelfer eine kleine Codezeile hinzufügen. Öffnen Sie die Datei application/helpers/pdf_helper.php
und fügen Sie
print_r($html);exit;
Zeile 98 für Rechnungsvorlagen
print_r($html);exit;
in Zeile 250 für Angebotsvorlagen
hinzu.
Dadurch wird das reine HTML-Format ausgegeben, das zum Generieren Ihrer PDF-Dateien verwendet wird. Bei Problemen mit fehlenden oder fehlerhaften Variablen oder falschem PHP-Code sollten Sie hier die entsprechende Ausgabe sehen.