Templates und benutzerdefinierte Felder


#1

Liebe Community,

zunächst und fraglos: Dank für InvoicePlane, das wir hier geraume Zeit einsetzen. Damals, ich weiß jetzt nicht mehr mit welcher Version wir gestartet sind, war die Nutzung von benutzerdefinierten Feldern irgendwann kapiert und hatte funktioniert. Hintergrund: Die original Vorlagen entsprechen ja nicht annähernd deutschen Gegebenheiten und dann noch mal eigene Angaben, wie Bankverbindung etc. in die PDFs zu bringen, machte das notwendig.

Damals konnte ich ein Custom Field so in ein Template einfügen:

   if ($invoice->user_custom_ojv_konto_iban) {
        echo '<div>' . $invoice->user_custom_ojv_konto_iban . '</div>';
   }

Nach dem Update auf 1.5 (o.ä.) geht da nix mehr. Und ehrlich: Ich verstehe auch das Wiki nicht mehr. Die Ausführungen zu custom fields möge verständlich sein, wenn man’s eh schon weiß… Kann sein, dass ich mich dämlich anstelle, aber nachdem ich nunmehr wieder Stunden zugebracht habe, ein einst funktionierendes Template anzupassen, verging mir wirklich die Laune :wink:

Ich bitte, das nicht falsch zu verstehen, InvoicePlane ist immerhin kostenlos verfügbar, aber die Angelegenheit Template erachte ich als absolut unpraktikabel. Gibt es keine andere Art, das einfacher und für den alltäglichen Gebrauch besser zu hantieren?

In diesem Fall: Ich suche ein schlichtes Template-Beispiel, in dem der Code für die Anwendung eines benutzerdefiniertes Feldes aufgeführt ist … Im Vergleich (?) zu “früher”, soll jetzt etwas stehen wie <?php echo $custom_fields['client']['CRM ID'] ?> und vorher schlicht $invoice->user_custom_variablenname. Ist für mich nicht nachvollziehbar und sämtliche Versuche scheitern.

Ist das irgendwo beispielhaft nachzulesen oder erklärt?


#2

Diese Felder (custom fields) werden gespeichert in ein “Array” so zu sehen gibt es
5 solche arrays Kunde / Rechnung / Zahlung / Angebot / Benutzer
in englisch client / invoice / payment / quote / user
Also wenn ein Field “Ibannr” bei Kunde (client) gemacht wird brauchst Du im Template

<?php echo $custom_fields['client']['Ibannr'] ?>

Ich habe es nicht getestet aber so machen andere OSS-Programme es ebenso.

Ich hoffe es hift Dir.

MfG
Jan


#3

janvl hat es schon richtig erklärt und ich versuche jetzt dein Beispiel aufzugreifen:

echo '<div>' . $invoice->user_custom_ojv_konto_iban . '</div>';

Ich nehme an, dass das benutzerdefinierte Feld dann OJV Konto IBAN heißt. Da es ein Feld für einen Benutzer ist, brauchen wir demnach user auch als Tabelle.
Im Template müsste dann folgendes stehen, um den Feldinhalt auszugeben:

<?php echo $custom_fields['user']['OJV Konto IBAN'] ?>