Skip to content

$out.addContent

Description

Ajoute un contenu nommé personnalisé dans l'arbre de sortie. Cette méthode permet d'ajouter du contenu personnalisé et de l'inscrire dans l'arbre XML de sortie en tant que contenu nommé, c'est-à-dire référencé sous un nom.

Le contenu sera repris dans le sous-arbre /output/session/contents du xml de sortie.

La méthode peut être appelée plusieurs fois pour ajouter du contenu sous un même nom. Le contenu est concaténé à celui déjà ajouté précédemment.

Durée de vie d'un contenu

À la différence des objets "persistents", un contenu ici n'est qu'une donnée dont la durée de vie se limite à l'arbre de sortie du moteur. Le contenu n'est pas conservé en mémoire au-delà de la production de l'arbre de sortie. Il peut éventuellement être converti en objet "transient" si la page HTML reprend sa valeur dans un champ de session.

Syntaxe

$out.addContent( name , body [ , options ] )

Paramètres

name string
Nom du contenu. Si le nom est vide ou null, cela signifie que l'on souhaite forcer le contenu indiqué comme contenu par défaut. Dans ce cas, le moteur ne générera plus d'arbre de sortie mais retournera directement le contenu indiqué.
body string
Corps du contenu
options map / string

Options supplémentaires passées à la méthode. Le paramètre peut être soit un map contenant différentes options, soit une valeur unique, auquel cas elle est considérée comme décrivant la propriété format. Dans le cas où le paramètre est un map, les propriétés suivantes sont traitées:

format string
Format du contenu. Les formats supportés sont "text" ou "xml". Le format par défaut est "text".
replace boolean
Flag true/false indiquant si le nouveau contenu doit remplacer l'éventuel contenu existant. Par défaut cette option est false.

Retour

Retourne toujours null.

Exemple

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
var tmp = $http.request($app.getConfig("printService.url", ""), restParams);

$out.addContent("imprimantes", "<printers>", "xml");

if ($str.startsWith(tmp.status, 2)) {
    var jsonid = $json.load(tmp.data),
        num = $json.path(jsonid, "$.printers.length()", 0);

    for (var idx = 0; idx < num; ++idx) {
        var printName = $json.path(jsonid, "$.printers[${idx}].name"),
            isDefaultPrinter = (printName == labelprinter ? 'true' : 'false');
        $out.addContent("imprimantes",
                        `<printer id="`& "${printName}"::X & `" default="${isDefaultPrinter}">` &
                            "${printName}"::X &
                        `</printer>`);
    }

    $json.free(jsonid);
}
else {
    $logger.debug(tmp);
    $msg.error(`Impossible d'obtenir la liste des imprimantes.<br/>
                Informations techniques: <code>${tmp.status}</code>`::t,
               null, { disableOutputEscaping: 'yes' } );
}

$out.addContent("imprimantes", "</printers>");