Skip to main content

Introduction

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.