Soffid 3 documentation
You can find the Soffid 3 documentation following the next link: https://bookstack.soffid.com/books/web-addon
Web add-ons are standard war files. The files included in the war file will be copied onto Soffid console war file.
In order to keep compatibility between add-ons, it's forbidden to overwrite existing file. Instead, the war file can contain xslt files to modify existing xml ones.
As an example, the following menu.zul.xsl allows the identity federation add-on to create a menu entry on menu.zul file:
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:zul="http://www.zkoss.org/2005/zul"> <xsl:template match="zul:tree/zul:treechildren/zul:treeitem[3]" priority="3"> <xsl:copy> <xsl:apply-templates select="node()|@*" /> </xsl:copy> <zul:treeitem open="false" > <zul:treerow > <zul:treecell label="Federation menu" onClick="self.parent.parent.open=!self.parent.parent.open"/> </zul:treerow> <zul:treechildren> <zul:treeitem> <zul:treerow> <zul:apptreecell label="Federation management" pagina="addon/federation/federacio.zul" /> </zul:treerow> </zul:treeitem> </zul:treechildren> </zul:treeitem> </xsl:template> <xsl:template match="node()|@*" priority="2"> <xsl:copy> <xsl:apply-templates select="node()|@*" /> </xsl:copy> </xsl:template> </xsl:stylesheet>
There is an special file named iam-label.properties. It contains the console localized labels, accessible via ${c:l EL expression or Labels class. This file, and all its localized versions will be merged automatically with existing iam-label.properties to create a new one.