Ajout de jetons pour générer des ID d'espace de nom uniques lorsque des applications sont insérées ou importées dans une instance de Script Application
Le fait d'associer des noms de variable JavaScript et des ID HTML à un espace de nom de portlet unique empêche les portlets d'entrer en conflit et identifie de manière unique les valeurs d'ID d'élément HTML et les variables JavaScript. Pour utiliser un espace de nom de portlet unique, vous pouvez ajouter le jeton __SPNS__ comme préfixe ou comme suffixe aux ID ou aux variables JavaScript, HTML, CSS ou JSON importés. L'instance de Script Application remplace le jeton __SPNS__ par le marquage de plug-in ScriptPortletNamespace de Web Content Manager lorsqu'une instance de Script Application est insérée ou importée à partir du client de développement sur le serveur. Le marquage de plug-in ScriptPortletNamespace de Web Content Manager génère l'espace de nom unique pour l'application lorsqu'elle est affichée.
Lorsque vous utilisez le jeton __SPNS__ comme marque de réservation pour l'espace de nom dans la représentation d'application externe, vous pouvez tester localement les applications qui ne reposent pas sur HCL Portal ni sur les artefacts et le marquage de portlet.
Dans l'exemple ci-après, le jeton __SPNS__ représente un pattern qui est remplacé par le marquage de plug-in d'espace de nom de Script Application lorsque l'application est insérée ou importée dans une instance de Script Application à partir d'un système de fichiers local.
$(function() {
$(app_js1).html("<div>hi from app_js1 with namespace: __SPNS__</div>");
var myVar__SPNS__ = '__SPNS__';
alert("Namespace: " + myVar__SPNS__);
});
Lorsque l'application est stockée en tant qu'objet de contenu Web Content Manager, ce pattern est remplacé par le marquage de plug-in d'espace de nom de Script Application [Plugin:ScriptPortletNamespace]. Le marquage est illustré dans l'exemple suivant :
$(function() {
$(app_js1).html("<div>hi from app_js1 with namespace:
[Plugin:ScriptPortletNamespace]</div>");
var myVar[Plugin:ScriptPortletNamespace] = '[Plugin:ScriptPortletNamespace]';
alert("Namespace: " + myVar[Plugin:ScriptPortletNamespace]);
});
Lorsque l'application est rendue, le plug-in d'espace de nom de Script Application remplace le marquage de plug-in par des ID d'espace de nom de portlet uniques. Les ID d'espace de nom de portlet uniques sont illustrés dans l'exemple suivant :
$(function() {
$(app_js1).html("<div>hi from app_js1 with namespace:
ns_Z7_4HD81440LG4710AAJ7HDH910L2_</div>");
var myVarns_Z7_4HD81440LG4710AAJ7HDH910L2_ = 'ns_Z7_4HD81440LG4710AAJ7HDH910L2_';
alert("Namespace: " + myVarns_Z7_4HD81440LG4710AAJ7HDH910L2_);
});
Lorsque vous exportez l'application dans un fichier compressé, le marquage de plug-in d'espace de nom de Script Application remplace à nouveau le jeton __SPNS__ de sorte que l'application puisse être testée en dehors de l'environnement HCL Portal.