265
edits
Gschratzer (talk | contribs) Tag: 2017 source edit |
Gschratzer (talk | contribs) No edit summary Tag: 2017 source edit |
||
| Line 74: | Line 74: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Die Funktion wird vor der Dokumentengenerierung aufgerufen, um das Substitutionsarray zu vervollständigen, damit das Tag '''myowntag''' durch den in '''$myvalue''' definierten Wert ersetzt wird. Sie können beliebig viele Tags hinzufügen und den Code schreiben, um die Werte zu definieren (Recherche in der Datenbank, in Dateien, Berechnungen, Verwendung von empfangenen oder globalen Variablen...). | |||
Achtung: Der erste Parameter in der Funktionsdeklaration muss mit & beginnen, da er vom Code geändert wird und verändert zurückgegeben werden muss. | |||
Damit Ihre Substitutionsfunktion aufgerufen wird, müssen Sie Folgendes tun: | |||
< | *Stellen Sie sicher, dass Ihre Substitutionsdatei im Verzeichnis '''htdocs/monmodule/core/substitutions''' gespeichert ist. | ||
*Erstellen Sie ein Modul (siehe Seite [[Développement module]]) mit seiner Modulbeschreibungsdatei. | |||
*Stellen Sie sicher, dass die Modulbeschreibungsdatei einen Eintrag enthält, um anzugeben, dass eine Substitutionsdatei aufgerufen werden soll. Dies sollte eine | |||
<syntaxHighlight lang="php"> | |||
$this->module_parts = array('substitutions' => 1) | $this->module_parts = array('substitutions' => 1) | ||
</ | </syntaxHighlight> | ||
*Activer le module (un module doit être activé et désactivé pour prendre en compte les changement dans son fichier descripteur) | |||
== | ===Autres tags personnalisées pour les lignes=== | ||
Cette fonctionnalité est disponible depuis Dolibarr v3.3 (version de développement futur). | |||
De manière similaire au chapitre précédent, vous devez définir une fonction de la même façon mais avec quelques différences: | |||
*Créez ou modifiez le même fichier que précédemment (voir le chapitre précédent). | |||
*Voici les différences: dans le fichier, écrire une autre fonction avec presque le même nom mais avec '_lines' en suffixe, et également ajouter une nouvelle variable $lines: | |||
<syntaxHighlight lang="php"> | |||
/** Function called to complete substitution array for lines (before generating on ODT, or a personalized email) | |||
* functions xxx_completesubstitutionarray_lines are called by make_substitutions() if file | |||
* is inside directory htdocs/core/substitutions | |||
* | |||
* @param array $substitutionarray Array with substitution key=>val | |||
* @param Translate $langs Output langs | |||
* @param Object $object Object to use to get values | |||
* @param Object $line Current line being processed, use this object to get values | |||
* @return void The entry parameter $substitutionarray is modified | |||
*/ | |||
function mymodule_completesubstitutionarray_lines(&$substitutionarray,$langs,$object,$line) { | |||
{ | |||
global $conf,$db; | |||
$myvalue='Put here calculated value to insert'; | |||
$substitutionarray['myowntag']=$myvalue; | |||
} | |||
</syntaxHighlight> | |||
Contrairement à la fonction précédente qui n'est jamais appelée qu'une seule fois, cette fonction sera appelée à chaque fois qu'une ligne de produit sera traitée, en vous donnant chaque fois un objet $line différent que vous pouvez traiter. Cela vous permet de faire des substitutions de tags différentes pour chaque produit. | |||
==Enregistrer votre document== | |||
Pour voir apparaitre votre modèle de document dans la liste des modèles disponibles, placer le dans le sous-répertoire adéquat qui se trouve dans le répertoire '''documents/doctemplates''' | |||
edits