home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2008 February / PCWFEB08.iso / Software / Resources / Media / MediaCoder 0.6.0.3690 / MediaCoder-0.6.0.3690.exe / extensions / _include / extbase.xsl < prev    next >
Encoding:
Extensible Markup Language  |  2007-04-27  |  5.8 KB  |  152 lines

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <xsl:output method="html" encoding="utf-8"/>
  4. <!--
  5. *******************************************************************
  6. * MediaCoder extension XSLT template version 0.6.0.1
  7. * Distributed under GPL license
  8. * Copyright (c) 2007 Stanley Huang <stanleyhuangyc@gmail.com>
  9. * All rights reserved.
  10. *******************************************************************
  11. -->
  12. <xsl:template match="/extension">
  13. <html xmlns="http://www.w3.org/1999/xhtml">
  14. <head>
  15. <xsl:call-template name="InitExtension"/>
  16. <script language="javascript">
  17. var entry = null;
  18. <xsl:if test="entry">
  19. entry='<xsl:value-of select="entry"/>';
  20. </xsl:if>
  21. if (entry)
  22.     window.location.href = entry;
  23. else
  24.     alert("No entry defined.");
  25. </script>
  26. </head>
  27. <body>
  28. </body>
  29. </html>
  30. </xsl:template>
  31.  
  32.   <xsl:template name="InitExtension">
  33.       <script language="javascript" src="../_include/extension.js"></script>
  34.     <script>
  35.     <xsl:if test="defaults">SetDefaultPrefs();</xsl:if>
  36.     function SetDefaultPrefs()
  37.     {
  38.         var docExtensionPrefs = document.implementation.createDocument("", "MediaCoderPrefs", null);
  39.         <xsl:for-each select="defaults/node">
  40.         AddPrefNode(docExtensionPrefs,'<xsl:value-of select="@key" />','<xsl:value-of select="@value" />');
  41.         </xsl:for-each>
  42.         PostPrefXML(docExtensionPrefs);
  43.         delete docExtensionPrefs;
  44.     }
  45.     </script>
  46.   </xsl:template>
  47.  
  48.   <xsl:template name="AddElement">
  49.     <xsl:param name="element"/>
  50.     <xsl:param name="option"/>
  51.     <xsl:choose>
  52.     <xsl:when test="$element/@type='checkbox'">
  53.         <label><input type="checkbox">
  54.         <xsl:attribute name="id"><xsl:value-of select="$element/@id"/></xsl:attribute>
  55.         <xsl:if test="$element/@selected or $element/option[2]/@selected">
  56.             <xsl:attribute name="checked">true</xsl:attribute>
  57.         </xsl:if>
  58.         <xsl:attribute name="onclick">onElementChange(id,checked);</xsl:attribute>
  59.         <xsl:choose>
  60.         <xsl:when test="$element/option">
  61.             <xsl:attribute name="onchange">
  62.             if(checked){
  63.             <xsl:for-each select="$element/option[2]/node">SetPrefValue('<xsl:value-of select="@key" />','<xsl:value-of select="@value" />');</xsl:for-each>}else{
  64.             <xsl:for-each select="$element/option[1]/node">SetPrefValue('<xsl:value-of select="@key" />','<xsl:value-of select="@value" />');</xsl:for-each>}
  65.             </xsl:attribute>
  66.         </xsl:when>
  67.         <xsl:otherwise>
  68.             <xsl:attribute name="onchange">SetPrefValue('<xsl:value-of select="$element/@key" />',checked);</xsl:attribute>
  69.             <xsl:if test="$element/@value='true' or $element/@value='1'">
  70.                 <xsl:attribute name="checked">true</xsl:attribute>
  71.             </xsl:if>
  72.         </xsl:otherwise>
  73.         </xsl:choose>
  74.         </input><xsl:value-of select="$element/@text"/></label>
  75.     </xsl:when>
  76.     
  77.     <xsl:when test="$element/@type='radiobox'">
  78.         <label><input type="radio">
  79.         <xsl:attribute name="name"><xsl:value-of select="$element/@id"/></xsl:attribute>
  80.         <xsl:if test="$option/@selected">
  81.             <xsl:attribute name="checked">true</xsl:attribute>
  82.         </xsl:if>
  83.         <xsl:attribute name="onclick">onElementChange(name,'<xsl:value-of select="$option/@text"/>');</xsl:attribute>
  84.         <xsl:attribute name="onchange">
  85.         <xsl:choose>
  86.         <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>
  87.         <xsl:otherwise>SetPrefValue('<xsl:value-of select="$element/@key" />','<xsl:value-of select="$element/@value" />');</xsl:otherwise>
  88.         </xsl:choose>
  89.         </xsl:attribute>
  90.         </input><xsl:value-of select="$option/@text"/></label>
  91.     </xsl:when>
  92.     
  93.     <xsl:when test="$element/@type='editbox'">
  94.         <input type="text">
  95.         <xsl:attribute name="id"><xsl:value-of select="$element/@id"/></xsl:attribute>
  96.         <xsl:attribute name="size"><xsl:value-of select="$element/@size"/></xsl:attribute>
  97.         <xsl:attribute name="value"><xsl:value-of select="$element/@value"/></xsl:attribute>
  98.         <xsl:attribute name="onchange">
  99.           <xsl:choose>
  100.           <xsl:when test="node">
  101.           <xsl:for-each select="$element/node">SetPrefValue('<xsl:value-of select="@key" />',value);</xsl:for-each>onElementChange(id,value);
  102.           </xsl:when>
  103.           <xsl:otherwise>
  104.           SetPrefValue('<xsl:value-of select="$element/@key" />',value);onElementChange(id,value);
  105.           </xsl:otherwise>
  106.           </xsl:choose>
  107.         </xsl:attribute>
  108.         </input>
  109.     </xsl:when>
  110.     
  111.     <xsl:when test="$element/@type='combobox' or $element/@type='listbox'">
  112.         <select>
  113.         <xsl:attribute name="id"><xsl:value-of select="$element/@id"/></xsl:attribute>
  114.         <xsl:attribute name="onclick">onElementChange(id,value);</xsl:attribute>
  115.         <xsl:if test="$element/@size">
  116.         <xsl:attribute name="size"><xsl:value-of select="$element/@size"/></xsl:attribute>
  117.         </xsl:if>
  118.         <xsl:for-each select="$element/option">
  119.           <option>
  120.           <xsl:if test="@selected">
  121.               <xsl:attribute name="selected"/>
  122.           </xsl:if>
  123.           <xsl:if test="@value">
  124.             <xsl:attribute name="value"><xsl:value-of select="@value" /></xsl:attribute>
  125.           </xsl:if>
  126.           <xsl:attribute name="onclick">
  127.             <xsl:choose>
  128.             <xsl:when test="node">
  129.               <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>
  130.             </xsl:when>
  131.             <xsl:otherwise>
  132.               <!--no node-->
  133.               SetPrefValue('<xsl:value-of select="../@key"/>','<xsl:value-of select="@value"/>')
  134.             </xsl:otherwise>
  135.             </xsl:choose>
  136.           </xsl:attribute>
  137.           <xsl:choose>
  138.           <xsl:when test="@text">
  139.             <xsl:value-of select="@text" />
  140.           </xsl:when>
  141.           <xsl:otherwise>
  142.             <xsl:value-of select="@value" />
  143.           </xsl:otherwise>
  144.           </xsl:choose>
  145.           </option>
  146.         </xsl:for-each>
  147.         </select>
  148.     </xsl:when>
  149.     </xsl:choose>
  150.  
  151.   </xsl:template>
  152. </xsl:stylesheet>