home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2008 April
/
PCWorld_2008-04_cd.bin
/
multimedia
/
mediacoder
/
MediaCoder-0.6.0.3905.exe
/
extensions
/
_include
/
extbase.xsl
< prev
next >
Wrap
Extensible Markup Language
|
2007-07-16
|
6KB
|
153 lines
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8"/>
<!--
*******************************************************************
* MediaCoder extension XSLT template version 0.6.0.1
* Distributed under GPL license
* Copyright (c) 2007 Stanley Huang <stanleyhuangyc@gmail.com>
* All rights reserved.
*******************************************************************
-->
<xsl:template match="/extension">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<xsl:call-template name="InitExtension"/>
<script language="javascript">
var entry = null;
<xsl:if test="entry">
entry='<xsl:value-of select="entry"/>';
</xsl:if>
if (entry)
window.location.href = entry;
else
alert("No entry defined.");
</script>
</head>
<body style="font-family:Verdana;font-size:large">
Loading Extension...
</body>
</html>
</xsl:template>
<xsl:template name="InitExtension">
<script language="javascript" src="../_include/extension.js"></script>
<script>
<xsl:if test="defaults">SetDefaultPrefs();</xsl:if>
function SetDefaultPrefs()
{
var docExtensionPrefs = document.implementation.createDocument("", "MediaCoderPrefs", null);
<xsl:for-each select="defaults/node">
AddPrefNode(docExtensionPrefs,'<xsl:value-of select="@key" />','<xsl:value-of select="@value" />');
</xsl:for-each>
PostPrefXML(docExtensionPrefs);
delete docExtensionPrefs;
}
</script>
</xsl:template>
<xsl:template name="AddElement">
<xsl:param name="element"/>
<xsl:param name="option"/>
<xsl:choose>
<xsl:when test="$element/@type='checkbox'">
<label><input type="checkbox">
<xsl:attribute name="id"><xsl:value-of select="$element/@id"/></xsl:attribute>
<xsl:if test="$element/@selected or $element/option[2]/@selected">
<xsl:attribute name="checked">true</xsl:attribute>
</xsl:if>
<xsl:attribute name="onclick">onElementChange(id,checked);</xsl:attribute>
<xsl:choose>
<xsl:when test="$element/option">
<xsl:attribute name="onchange">
if(checked){
<xsl:for-each select="$element/option[2]/node">SetPrefValue('<xsl:value-of select="@key" />','<xsl:value-of select="@value" />');</xsl:for-each>}else{
<xsl:for-each select="$element/option[1]/node">SetPrefValue('<xsl:value-of select="@key" />','<xsl:value-of select="@value" />');</xsl:for-each>}
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="onchange">SetPrefValue('<xsl:value-of select="$element/@key" />',checked);</xsl:attribute>
<xsl:if test="$element/@value='true' or $element/@value='1'">
<xsl:attribute name="checked">true</xsl:attribute>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</input><xsl:value-of select="$element/@text"/></label>
</xsl:when>
<xsl:when test="$element/@type='radiobox'">
<label><input type="radio">
<xsl:attribute name="name"><xsl:value-of select="$element/@id"/></xsl:attribute>
<xsl:if test="$option/@selected">
<xsl:attribute name="checked">true</xsl:attribute>
</xsl:if>
<xsl:attribute name="onclick">onElementChange(name,'<xsl:value-of select="$option/@text"/>');</xsl:attribute>
<xsl:attribute name="onchange">
<xsl:choose>
<xsl:when test="$element/option"><xsl:for-each select="$option/node">SetPrefValue('<xsl:value-of select="@key" />','<xsl:value-of select="@value" />');</xsl:for-each></xsl:when>
<xsl:otherwise>SetPrefValue('<xsl:value-of select="$element/@key" />','<xsl:value-of select="$element/@value" />');</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</input><xsl:value-of select="$option/@text"/></label>
</xsl:when>
<xsl:when test="$element/@type='editbox'">
<input type="text">
<xsl:attribute name="id"><xsl:value-of select="$element/@id"/></xsl:attribute>
<xsl:attribute name="size"><xsl:value-of select="$element/@size"/></xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="$element/@value"/></xsl:attribute>
<xsl:attribute name="onchange">
<xsl:choose>
<xsl:when test="node">
<xsl:for-each select="$element/node">SetPrefValue('<xsl:value-of select="@key" />',value);</xsl:for-each>onElementChange(id,value);
</xsl:when>
<xsl:otherwise>
SetPrefValue('<xsl:value-of select="$element/@key" />',value);onElementChange(id,value);
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</input>
</xsl:when>
<xsl:when test="$element/@type='combobox' or $element/@type='listbox'">
<select>
<xsl:attribute name="id"><xsl:value-of select="$element/@id"/></xsl:attribute>
<xsl:attribute name="onclick">onElementChange(id,value);</xsl:attribute>
<xsl:if test="$element/@size">
<xsl:attribute name="size"><xsl:value-of select="$element/@size"/></xsl:attribute>
</xsl:if>
<xsl:for-each select="$element/option">
<option>
<xsl:if test="@selected">
<xsl:attribute name="selected"/>
</xsl:if>
<xsl:if test="@value">
<xsl:attribute name="value"><xsl:value-of select="@value" /></xsl:attribute>
</xsl:if>
<xsl:attribute name="onclick">
<xsl:choose>
<xsl:when test="node">
<xsl:for-each select="node">SetPrefValue('<xsl:choose><xsl:when test="@key"><xsl:value-of select="@key" /></xsl:when><xsl:otherwise><xsl:value-of select="../../@key"/></xsl:otherwise></xsl:choose>','<xsl:value-of select="@value" />');</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<!--no node-->
SetPrefValue('<xsl:value-of select="../@key"/>','<xsl:value-of select="@value"/>')
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:choose>
<xsl:when test="@text">
<xsl:value-of select="@text" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@value" />
</xsl:otherwise>
</xsl:choose>
</option>
</xsl:for-each>
</select>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>