Erstellen einer ODT-Dokumentvorlage: Difference between revisions

Jump to navigation Jump to search
no edit summary
Tag: 2017 source edit
No edit summary
Tag: 2017 source edit
Line 74: Line 74:
</syntaxhighlight>
</syntaxhighlight>


La función será llamada antes de la generación del documento para completar la tabla de sustituciones que reemplazará el tag '''myowntag''' por el valor definido en '''$myvalue'''.
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...).
Puede añadir tantos tags como necesite y meter el código que quiera pare definir los valores (sacados de la base de datos, calculados, a partir de variables recibidas o globales, etc.).


Atención: El primer parámetro de la declaración de la función debe empezar por & ya que es modificado por el código y debe devolverse modificado.
Achtung: Der erste Parameter in der Funktionsdeklaration muss mit & beginnen, da er vom Code geändert wird und verändert zurückgegeben werden muss.


Creado un módulo (Ver la página [[Desarrollo de un módulo]]), puede emplazar el archivo de substititución en un directorio de su módulo llamado '''htdocs/mimodulo/core/substitutions'''. Sin embargo, la función sólo será llamada si el descriptor de módulo contiene una entrada
Damit Ihre Substitutionsfunktion aufgerufen wird, müssen Sie Folgendes tun:
<syntaxhighlight lang="PHP">
*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>
</syntaxHighlight>
y que el módulo haya sido activado.
*Activer le module (un module doit être activé et désactivé pour prendre en compte les changement dans son fichier descripteur)


==Guardar su documento==
===Autres tags personnalisées pour les lignes===
Para ver su modelo de documento en la lista de modelos disponibles, guarde lo en el subdirectorio adecuado que se encuentra en el directorio '''documents/doctemplates'''
 
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'''
265

edits

Navigation menu