Paramètres de publication d'un générateur


#1

Bonjour,
les notes de version de la version 4.2 de scenari mentionnent la “possibilité d’ajouter des paramètres de publication (statiques ou dynamiques) au niveau d’un générateur (quel que soit son type)”.
Je ne trouve pas le moyen d’utiliser cette fonctionnalité.
Quelqu’un pourrait-il m’aiguiller?
Merci


#2

Bonjour,

Pour un exemple de paramètre de publication statique vous pouvez regarder les sources de l’extension Print d’Opale disponible ici : http://scenari-platform.org/svn/opaleext/3.6/genPrint/
Dans le wspdef de test /genPrint/opaleTest.wspdef vous trouverez un sm:properties en fils de l’ajout du générateur print à odRoot.model :

Au niveau du rendu dans le modèle final ceci ce traduit par :

Au niveau des transformers les propriétés sont en général récupérés par la fonction xpath SCENARI genProp(NAME, DEFAULT).

Dans l’exemple ci-dessus la propriété est utilisé pour définir la résolution des ressources images intégrés dans le PDF final, (92 DPI ou 300 DPI) par exemple dans /genPrint/gen/_print/transf/binaries/jpg.transf on trouve :


C.a.d. maxTargetDpi est calculé par une expression xpath :
if(genProp('resolution@stored','high')='low', genProp('dpi.low-int',92), genProp('dpi.high-int',300))
Ici si la propriété “resolution@stored” est “low” on utilise une DPI de 92 sinon on utilise une DPI de 300.
Par ailleurs dans /genPrint/gen/_print/transf/root/odRoot@root.transf on trouve :

Autrement dit, la page XHTML utilisé pour générer le PDF englobe tout son contenu par une DIV qui portera une classe CSS en relation avec le résolution sélectionnée : “resolution_low” ou “resolution_high”. Ceci peut ensuite être utiisé pour écrire des règles CSS en conséquence pour utiliser des images de résolutions différentes dans le skin.
REMARQUE : Ce paramétrage n’est pas encore disponible dans la version stable de l’extension Print de Opale, ce sera une évolution présente dans la prochaine version.

Pour un exemple de paramètre de publication dynamique, vous pouvez vour reporter aux sources de Canoprof disponibles ici : https://download.canoprof.fr/Canoprof.scwsp (ceci est une archive d’atelier SCENARIbuilder, il peut etre simplement glissé - déposé dans un atelier vierge dans SCENARIbuilder 4.2)
Les paramètres de publication dynamiques sont en fait des petits sm:interactiveGenerator. Dans Canoprof cette technologie est utilisé pour rendre dynamique la sélection d’inclusion ou non de parties des sources dans la génération.
Au niveau du wspdef /canoprof.wspdef on trouve :

Les propriétés sont gérés par /gen/web/props/webProps.generator qui construit un formulaire dynamique basé sur le contenu du programme. Je ne vais pas explicité ce processus ici, le code de cet sm:interactiveGenerator est relativement standard et compréhensible pour un modelisateur averti. A noté que l’interaction entre le sm:interactiveGenerator de propriétés (/gen/web/props/webProps.generator) et le générateur parent (/gen/web/web.generator) se fait par une API en JavaScript grâce a la librairie /gen/_props/props.doss/site/props.js.