freePreviewXsl (3.7+)
Il est possible dans la compositionPrim d'utiliser des XSL de prévisualisation pour construire une page HTML.
La freePrim pointe vers un item .doss qui contient un ensemble de fichiers et répertoires libres (xsl, css, images, ...). L'attribut pathRootFile définit la XSL principale appelée.
Les paramètres suivants sont passés à la XSL :
- scPreviewResUrl : URL pointant vers le répertoire où le contenu du .doss a été copié (ex : chrome://optim-0_0/content/of_report/preview) ;
- scModelUrl : URL pointant vers le répertoire principal du modèle (ex : chrome://optim-0_0/content) ;
- scGenericCssUrl : URL pointant vers la CSS définissant les structures de base SCENARI ;
Exemple complet commenté :
| Exemple |
|---|
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:sp="http://www.utc.fr/ics/scenari/v3/primitive"
xmlns:sc="http://www.utc.fr/ics/scenari/v3/core"
xmlns="http://www.w3.org/1999/xhtml"
version="1.0">
<xsl:output method="xml" indent="no" />
<!-- URL pointant vers le répertoire ou le contenu du .doss a été copié -->
<xsl:param name="scPreviewResUrl"/>
<!-- URL pointant vers le répertoire principal du modèle -->
<xsl:param name="scModelUrl"/>
<!-- URL pointant vers la CSS définissant les structures de base SCENARI -->
<xsl:param name="scGenericCssUrl"/>
<xsl:template match="/*">
<html>
<head>
<!-- Declaration de la CSS qui définit des bidings vers des structures de présentation (lien vers les items fils externalisés, ...) -->
<link rel="stylesheet" href="{$scGenericCssUrl}" type="text/css" />
</head>
<body>
<h1>Variables passées en paramètre à la XSL</h1>
<div>scPreviewResUrl : <xsl:value-of select="$scPreviewResUrl"/></div>
<div>scModelUrl : <xsl:value-of select="$scModelUrl"/></div>
<h1>Exploitation des ressources statiques</h1>
<img src="{$scPreviewResUrl}/img/icon.png"/>
<link rel="stylesheet" href="{$scPreviewResUrl}/styles/main.css" type="text/css"/>
<div>Test de texte de class <span class="important">'important'</span></div>
<h1>Test de scripting</h1>
<script>
function showMessage(pTxt){
alert('Message : ' + pTxt);
}
</script>
<div>Cliquer <span class="important" onclick="showMessage('ok')">ici</span>.</div>
<h1>Liens vers les items fils externalisés</h1>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<!-- # Liens vers les items fils externalisés -->
<xsl:template match="sc:extBlock[@role='img']">
<!--
TAG à utiliser pour afficher un autre item sous forme d'image (sans titre, sans le nom de l'item pointé, ...).
Cet XBL est un simple noeud <image/> pour un fonctionnement optimal en inline (y compris HTML).
Attributs:
- @uri : uri de l'item pointé
- @regexpSgn : RegExp pour controler la signature de l'item pointé et afficher une erreur si besoin
-->
<div>
<itemviewimage regexpSgn=".*@sfile_gif\b.*|.*@sfile_jpg_jpeg\b.*" uri="{@sc:refUri}" style="vertical-align:middle;"/>
</div>
</xsl:template>
<xsl:template match="sc:uLink[@role='def']">
<!--
TAG à utiliser pour afficher un autre item inline
Attributs:
- @uri : uri de l'item pointé
- withstatus : Affiche le statut de l'item pointé. Valeur par défaut : false.
- withurires : Affiche l'uriRes de la référence. Valeur par défaut : false.
- regexpSgn : RegExp pour controler la signature de l'item pointé
- openOutside : si "true" force l'ouverture de l'item pointé dans un autre onglet ou une autre fenetre.
-->
<itempreview regexpSgn=".*@of_def\b.*" uri="{@sc:refUri}"/>
</xsl:template>
<xsl:template match="sp:chap[@sc:refUri]">
<!--
TAG à utiliser pour afficher un autre item dans un block
Attributs:
- @uri : uri de l'item pointé
- withstatus : Affiche le statut de l'item pointé. Valeur par défaut : false.
- withurires : Affiche l'uriRes de la référence. Valeur par défaut : false.
- regexpSgn : RegExp pour controler la signature de l'item pointé
- openOutside : si "true" force l'ouverture de l'item pointé dans un autre onglet ou une autre fenetre.
- preview : si l'attribut est à 'allowed', l'option d'affichage de la preview sera pris en compte.
- itemptrpreviewmode : Options parmis
- N : Name = nom de la terminaison de l'Uri (leaf) de l'item lié.
- F : Full Uri = chemin complet de l'Uri de l'item lié (N est donc inclus automatiquement).
- T : Title = titre de l'item.
- I : Icon = Icone de l'item lié.
- E : Error = erreur sur le lien (item lié null, mauvais type...)
- P : Preview = preview de l'item lié.
- M : Menu de modification de ce options d'affichage.
-->
<itemview itemptrpreviewmode="TIEPNM" withstatus="true" preview="allowed" regexpSgn="" uri="{@sc:refUri}"/>
</xsl:template>
</xsl:stylesheet>
|
freePreview(3.7.1+)
La freePreview permet de pointer vers un .doss, et de spécifier via l'attribut pathRootFile le fichier principal à charger (xul, html, ...). PathRootFile est une composition-dynamique au sens scenari, c'est à dire qu'il est possible de définir et utiliser des variables de type :
var scPreviewResUrl = 'chrome://[![agent=/@@/chromeCode]!]/content/[![agent=//codeModel]!]/[![agent=../previewMiniDirName]!]'; var scModelUrl = 'chrome://[![agent=/@@/chromeCode]!]/content'; var scGenericCssUrl = 'chrome://scenaricms/content/widgets/block/html/blockhtml.css';
Attachments
-
preview.jpg
(87.6 KB) -
added by anp 3 years ago.
Rendu de l'exemple ci-dessus
