Understanding How ePublisher Works : Understanding Stationery, Projects, and Overrides : Project Format and Target Overrides : Creating Super Overrides
 
Creating Super Overrides
An XSL super override is simply a way for the stationery designer to add an XSL override to a file in the Transforms directory without having to copy the entire template structure of the file.
Note: Support XSL overrides is only available through Study Hall and not Standard Support. For more information regarding Study Hall, please go to http://www.webworks.com/eschool/study_hall/.
Here is an example from the WebWorks wiki of XSL that you can use as a starting point for learning about this feature:
<!-- Override the mode wwdoc:Table from the base content.xsl -->
<!-- -->
<xsl:template match="wwdoc:Table" mode="wwmode:content">
<xsl:param name="ParamTable" select="." />
<!-- Parameters passed in to this processing context. We need to pass them along. -->
<!-- -->
<xsl:param name="ParamSplits" />
<xsl:param name="ParamCargo" />
<xsl:param name="ParamLinks" />
<xsl:param name="ParamTOCData" />
<xsl:param name="ParamSplit" />
 
<!-- Manually set all table formatting in this template. -->
<!-- -->
<html:table cellspacing="0" cellpadding="5" border="1" style="margin-top: 0.6em; margin-bottom: 0.6em;">
<xsl:for-each select="$ParamTable/wwdoc:Caption/wwdoc:Paragraph[1] | $ParamTable/preceding-sibling::wwdoc:Paragraph[@stylename = 'Caption'][1]">
<html:caption>
<html:p>
<html:b>
<xsl:for-each select="./wwdoc:TextRun/wwdoc:Text">
<xsl:value-of select="@value" />
</xsl:for-each>
</html:b>
</html:p>
</html:caption>
</xsl:for-each>
 
<xsl:for-each select="$ParamTable/wwdoc:TableHead | $ParamTable/wwdoc:TableBody | $ParamTable/wwdoc:TableFoot">
<xsl:variable name="VarSection" select="." />
 
<xsl:variable name="VarTagName">
<xsl:choose>
<xsl:when test="local-name($VarSection) = 'TableHead'">
<xsl:text>thead</xsl:text>
</xsl:when>
<xsl:when test="local-name($VarSection) = 'TableBody'">
<xsl:text>tbody</xsl:text>
</xsl:when>
<xsl:when test="local-name($VarSection) = 'TableFoot'">
<xsl:text>tfoot</xsl:text>
</xsl:when>
</xsl:choose>
</xsl:variable>
 
<xsl:element name="{$VarTagName}" namespace="'http://www.w3.org/1999/xhtml'">
<xsl:for-each select="$VarSection/wwdoc:TableRow">
<xsl:variable name="VarRow" select="." />
 
<html:tr>
<xsl:for-each select="$VarRow/wwdoc:TableCell">
<xsl:variable name="VarCell" select="." />
 
<html:td>
<!-- Pass control back to the base processing flow. -->
<!-- -->
<xsl:apply-templates select="$VarCell/wwdoc:Paragraph" mode="wwmode:content">
<xsl:with-param name="ParamSplits" select="$ParamSplits" />
<xsl:with-param name="ParamCargo" select="$ParamCargo" />
<xsl:with-param name="ParamLinks" select="$ParamLinks" />
<xsl:with-param name="ParamTOCData" select="$ParamTOCData" />
<xsl:with-param name="ParamSplit" select="$ParamSplit" />
</xsl:apply-templates>
</html:td>
</xsl:for-each>
</html:tr>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</html:table>
</xsl:template>
To use the super override
1. In your Stationery design project, on the Advanced menu, click Manage Format Customizations (or Target for target overrides)
2. In the displayed collection of folders and files navigate to the Transforms directory, and click on the XSL file you wish to modify
3. Right click the XSL file, and click Create Super Customization
4. In the text editor, you will see the XSL that indicates:
<!-- Write templates here -->
<!-- -->
5. Add the custom XSL, please note that the code will have to reference the original XSL file in order for ePublisher to process it correctly. For more information, please refer to this wiki page.
6. Save XSL override, save ePublisher project, reopen and generate output for ePublisher to process this override