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

VariableBeschreibung
$invoiceSie 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_ratesEnthält Informationen zu allen Steuersätzen, die auf die Rechnung angewendet wurden
$itemsBeinhaltet alle Rechnungspositionen mit ihren entsprechenden Daten.
$payment_methodStellt Informationen zur ausgewählten Zahlungsmethode bereit.
$custom_fieldsBenutzerdefinierte Felder für die Rechnung, den Benutzer, den Kunden und, falls verfügbar, für das übergeordnete Angebot.
$show_item_discountsKann verwendet werden, um die zusätzliche Rabattspalte nur anzuzeigen, wenn Rabatte eingegeben werden.

Angebotsvorlagen

VariableBeschreibung
$quoteSie enthält Daten zu den Angeboten, dem Benutzer, der das Angebot erstellt hat, und dem für die Angebote ausgewählten Kunden.
$quote_tax_ratesEnthält Informationen zu allen Steuersätzen, die auf das Angebot angewendet wurden.
$itemsBeinhaltet alle Angebotspositionen mit ihren entsprechenden Daten.
$custom_fieldsBenutzerdefinierte Felder für das Angebot, den Benutzer und den Kunden.
$show_item_discountsKann 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.

BeschreibungCode
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.