Advertisement
Guest User

form template xslt

a guest
Mar 20th, 2012
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 16.80 KB | None | 0 0
  1.  
  2. <xsl:stylesheet
  3.  version="1.0"
  4.  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  5.  xmlns:php="http://php.net/xsl"
  6.  xmlns:exslt="http://exslt.org/common">
  7.  
  8.   <xsl:include href="button.xsl" />
  9.   <xsl:include href="validator.xsl" />
  10.  
  11.   <xsl:template match="control[@type='textarea']">
  12.   <xsl:param name="label" />
  13.             <tr>
  14.               <td id="label_{../@name}_{@name}" class="label"><xsl:value-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if></td>
  15.               <td>
  16.                 <textarea id="{@id}" name="{@name}" >
  17.                   <xsl:if test="error">
  18.                     <xsl:attribute name="class">inputError</xsl:attribute>
  19.                   </xsl:if>
  20.                   <xsl:value-of select="@value" disable-output-escaping="yes" />
  21.                 </textarea>
  22.               </td>
  23.             </tr>
  24.   </xsl:template>
  25.  
  26.     <xsl:template match="control[@type='textarea']" mode="extended">
  27.   <xsl:param name="label" />
  28.             <tr>
  29.               <td valign="top" id="label_{../@name}_{@name}" class="label"><xsl:value-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if></td>
  30.               <td class='vis' valign="top">
  31.                 <textarea  id="{@name}" name="{@name}" style="width:100%;">
  32.                   <xsl:if test="error">
  33.                     <xsl:attribute name="class">inputError</xsl:attribute>
  34.                   </xsl:if>
  35.                   <xsl:value-of select="@value" disable-output-escaping="yes" />
  36.                 </textarea>
  37.               </td>
  38.             </tr>
  39.   </xsl:template>
  40.  
  41.   <xsl:template match="control[@type='submit']">
  42.   <xsl:param name="label" />
  43.             <tr>
  44.               <td>&#160;</td>
  45.               <td>
  46.                 <input type="submit" name="action" value="{$label}" />
  47.              </td>
  48.             </tr>
  49.   </xsl:template>
  50.  
  51.   <xsl:template match="control[@type='reset']">
  52.   <xsl:param name="label" />
  53.             <tr>
  54.               <td>&#160;</td>
  55.               <td>
  56.                 <input type="reset" name="cancel" value="{$label}" />
  57.              </td>
  58.             </tr>
  59.   </xsl:template>
  60.  
  61.    <xsl:template match="control[@type='text']" mode="calendar">  
  62.   <xsl:param name="label" />
  63.             <tr>
  64.               <td valign="top" id="label_{../@name}_{@name}" class="label"><xsl:value-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if></td>
  65.               <td valign="top">
  66.                 <div id="contCalendar" style="display: none; position:absolute; left: 0px; top: 0px; border: 1px solid #5E6296; width: 182px;"></div>
  67.                 <input type="{@type}" id="{@id}" value="{@value}" name="{@name}" class="inputSignup" >
  68.                   <xsl:if test="error" >
  69.                     <xsl:attribute name="class">inputError</xsl:attribute>
  70.                   </xsl:if>
  71.                 </input>
  72.                 <a href="#" id="popUpCalendar"><xsl:attribute name="onmousedown">showDelCalendar('<xsl:value-of select="parent::node()/@name" />', '<xsl:value-of select="@name" />')</xsl:attribute><xsl:attribute name="onclick">return false</xsl:attribute><img src="design/images/icon_calendar.gif" alt="" id="icon_calendar" align="middle" width="10" hspace="3" height="13" border="0" /></a><a href="javascript: void(0);"><xsl:attribute name="onmousedown">clearDate('<xsl:value-of select="parent::node()/@name" />', '<xsl:value-of select="@name" />')</xsl:attribute><img src="design/images/icon_del_calendar.gif" alt="" id="icon_del_calendar" align="middle" width="13" hspace="3" height="14" border="0" /></a><!-- [POPUP CALENDAR] (date format is mm/dd/YYYY) -->
  73.               </td>
  74.             </tr>
  75.   </xsl:template>
  76.  
  77.   <xsl:template match="control[@type='text' or @type='password']">
  78.   <xsl:param name="label" />
  79.  
  80.              <tr>
  81.               <td id="label_{../@name}_{@name}" class="label" nowrap="nowrap"><xsl:value-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if></td>
  82.               <td>
  83.                 <input type="{@type}" id="{@id}" value="{@value}" name="{@name}" class="text">
  84.                   <xsl:if test="error">
  85.                     <xsl:attribute name="class">inputError</xsl:attribute>
  86. <!--                    &#160;<xsl:value-of select="error/@value"/>-->
  87.                   </xsl:if>
  88.                 </input>
  89.               </td>
  90.             </tr>
  91.   </xsl:template>
  92.  
  93.   <xsl:template match="control[@type='label']">
  94.   <xsl:param name="label" />
  95.             <tr>
  96.               <td class="label"><xsl:value-of select="$label" /></td>
  97.               <td><xsl:value-of select="@value" /></td>
  98.             </tr>
  99.   </xsl:template>
  100.  
  101.    <xsl:template match="control[@type='label']" mode="header">
  102.   <xsl:param name="label" />
  103.             <tr>
  104.               <td class="label"><h6><xsl:value-of select="$label" /></h6></td>
  105.               <td><h6><xsl:value-of select="@value" /></h6></td>
  106.             </tr>
  107.   </xsl:template>
  108.  
  109.   <xsl:template match="control[@type='select']">
  110.   <xsl:param name="label" />
  111.   <xsl:param name="change" />
  112.             <tr>
  113.               <td id="label_{../@name}_{@name}" class="label"><xsl:value-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if></td>
  114.               <td>
  115.                 <select name="{@name}">
  116.                   <xsl:if test="$change">
  117.                     <xsl:attribute name="onchange"><xsl:value-of select="$change" /></xsl:attribute>
  118.                   </xsl:if>
  119.                  <xsl:apply-templates select="option" />
  120.                   <xsl:if test="error" >
  121.                     <xsl:attribute name="class">inputError</xsl:attribute>
  122.                   </xsl:if>
  123.                 </select>
  124.               </td>
  125.             </tr>
  126.   </xsl:template>
  127.  
  128.   <xsl:template match="control[@type='select']" mode="multiple">
  129.   <xsl:param name="label" />
  130.   <xsl:param name="change" />
  131.   <xsl:param name="class" />
  132.             <tr>
  133.               <td id="label_{../@name}_{@name}" class="label"><xsl:value-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if></td>
  134.               <td>
  135.                 <select name="{@name}" multiple="true" class="{$class}">
  136.                   <xsl:if test="$change">
  137.                     <xsl:attribute name="onchange"><xsl:value-of select="$change" /></xsl:attribute>
  138.                   </xsl:if>
  139.                  <xsl:apply-templates select="option" />
  140.                   <xsl:if test="error" >
  141.                     <xsl:attribute name="class">inputError</xsl:attribute>
  142.                   </xsl:if>
  143.                 </select>
  144.               </td>
  145.             </tr>
  146.   </xsl:template>
  147.  
  148.   <xsl:template match="control[@type='radio']">
  149.   <xsl:param name="label" />
  150.             <tr>
  151.               <td id="label_{../@name}_{@name}" class="label"><xsl:value-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if></td>
  152.               <td>
  153.                 <xsl:apply-templates select="item" >
  154.                     <xsl:with-param name="name"><xsl:value-of select="@name"/></xsl:with-param>
  155.                 </xsl:apply-templates>
  156.                 <xsl:if test="error" >
  157.                   <xsl:attribute name="class">inputError</xsl:attribute>
  158.                 </xsl:if>
  159.               </td>
  160.             </tr>
  161.   </xsl:template>
  162.  
  163.   <xsl:template match="control[@type='checkboxgroup']">
  164.   <xsl:param name="label" />
  165.             <tr>
  166.               <td id="label_{../@name}_{@name}" class="label"><xsl:value-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if></td>
  167.               <td>
  168.                 <xsl:apply-templates select="item" mode="checkboxgroup">
  169.             <xsl:with-param name="name"><xsl:value-of select="@name"/></xsl:with-param>
  170.         </xsl:apply-templates>
  171.                 <xsl:if test="error" >
  172.                   <xsl:attribute name="class">inputError</xsl:attribute>
  173.                 </xsl:if>
  174.               </td>
  175.             </tr>
  176.   </xsl:template>
  177.  
  178.   <xsl:template match="item" mode="checkboxgroup">
  179.   <xsl:param name="name" />
  180.     <input type="checkbox" value="{@id}" name="{$name}[{@id}]" >
  181.       <xsl:if test="@checked != 'false'"><xsl:attribute name="checked"></xsl:attribute></xsl:if>
  182.     </input><xsl:value-of select="@value" /><br/>
  183.   </xsl:template>
  184.  
  185.   <xsl:template match="option">
  186.     <option value="{@id}"><xsl:if test="@selected"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="@value" /></option>
  187.   </xsl:template>
  188.  
  189.   <xsl:template match="item">
  190.   <xsl:param name="name" />
  191.     <input type="radio" value="{@id}" name="{$name}" >
  192.       <xsl:if test="@selected"><xsl:attribute name="checked"></xsl:attribute></xsl:if>
  193.     </input><xsl:value-of select="@value" /><br/>
  194.   </xsl:template>
  195.  
  196.   <xsl:template match="control[@type='button']">
  197.   <xsl:param name="label" />
  198.   <xsl:param name="url" />
  199.   <xsl:param name="js" />
  200.             <tr>
  201.               <td></td>
  202.               <td>
  203.                 <input type="{@type}" id="{@id}" value="{$label}" name="{@name}">
  204.                 <xsl:if test="$url">
  205.                     <xsl:attribute name="onClick">document.location='<xsl:value-of select="$url"/>'</xsl:attribute>
  206.                 </xsl:if>
  207.                 <xsl:if test="$js">
  208.                     <xsl:attribute name="onClick"><xsl:value-of select="$js"/></xsl:attribute>
  209.                 </xsl:if>
  210.                 </input>
  211.               </td>
  212.             </tr>
  213.   </xsl:template>
  214.  
  215.   <xsl:template match="control[@type='button']" mode="with_confirmation">
  216.   <xsl:param name="label" />
  217.   <xsl:param name="url" />
  218.   <xsl:param name="confirm_msg" />
  219.             <tr>
  220.               <td></td>
  221.               <td>
  222.                 <input type="{@type}" id="{@id}" value="{$label}" name="{@name}" onClick="if (window.confirm('{$confirm_msg}')) document.location='{$url}'" />
  223.               </td>
  224.             </tr>
  225.   </xsl:template>
  226.  
  227.   <xsl:template match="control[@type='checkbox']">
  228.   <xsl:param name="label" />
  229.   <xsl:param name="reverse" />
  230.   <xsl:variable name="value">                
  231.     <xsl:if test="@value = ''" >Y</xsl:if>
  232.     <xsl:if test="not(@value = '')" ><xsl:value-of select="@value" /></xsl:if>
  233.   </xsl:variable>
  234.   <xsl:if test="$reverse" >
  235.             <tr>
  236.               <td></td>
  237.               <td>
  238.                   <input type="checkbox" value="{$value}" name="{@name}" id="{@name}" >
  239.               <xsl:if test="@checked != 'false'"><xsl:attribute name="checked"></xsl:attribute></xsl:if>
  240.             &#160;<xsl:copy-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if>
  241.                 <xsl:if test="error" >
  242.                   <xsl:attribute name="class">inputError</xsl:attribute>
  243.                 </xsl:if>
  244.             </input>&#160;<xsl:value-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if>
  245.             </td>
  246.             </tr>
  247.   </xsl:if>
  248.   <xsl:if test="not($reverse)" >
  249.             <tr>
  250.               <!--<td id="label_{../@name}_{@name}" class="label"><xsl:copy-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if></td>-->
  251.               <td id="label_{../@name}_{@name}" class="label"><xsl:value-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if></td>
  252.               <td>
  253.                   <input type="checkbox" value="{$value}" name="{@name}" id="{@name}" >
  254.               <xsl:if test="@checked != 'false'"><xsl:attribute name="checked"></xsl:attribute></xsl:if>
  255.                 <xsl:if test="error" >
  256.                   <xsl:attribute name="class">inputError</xsl:attribute>
  257.                 </xsl:if>
  258.             </input>
  259.               </td>
  260.             </tr>
  261.   </xsl:if>
  262.  
  263.   </xsl:template>
  264.  
  265.   <xsl:template match="control[@type='checkbox']" mode="disabled">
  266.   <xsl:param name="label" />
  267.   <xsl:param name="reverse" />
  268.   <xsl:variable name="value">                
  269.     <xsl:if test="@value = ''" >Y</xsl:if>
  270.     <xsl:if test="not(@value = '')" ><xsl:value-of select="@value" /></xsl:if>
  271.   </xsl:variable>
  272.   <xsl:if test="$reverse" >
  273.             <tr>
  274.               <td></td>
  275.               <td>
  276.                   <input disabled="disabled" type="checkbox" value="{$value}" name="{@name}" >
  277.               <xsl:if test="@checked != 'false'"><xsl:attribute name="checked"></xsl:attribute></xsl:if>
  278.             &#160;<xsl:copy-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if>
  279.                 <xsl:if test="error" >
  280.                   <xsl:attribute name="class">inputError</xsl:attribute>
  281.                 </xsl:if>
  282.             </input>
  283.               </td>
  284.             </tr>
  285.   </xsl:if>
  286.   <xsl:if test="not($reverse)" >
  287.             <tr>
  288.               <!--<td id="label_{../@name}_{@name}" class="label"><xsl:copy-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if></td>-->
  289.               <td id="label_{../@name}_{@name}" class="label"><xsl:value-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if></td>
  290.               <td>
  291.                   <input disabled="disabled" type="checkbox" value="{$value}" name="{@name}" >
  292.               <xsl:if test="@checked != 'false'"><xsl:attribute name="checked"></xsl:attribute></xsl:if>
  293.                 <xsl:if test="error" >
  294.                   <xsl:attribute name="class">inputError</xsl:attribute>
  295.                 </xsl:if>
  296.             </input>
  297.               </td>
  298.             </tr>
  299.   </xsl:if>
  300.  
  301.   </xsl:template>
  302.  
  303.   <xsl:template match="control[@type='file']">
  304.   <xsl:param name="label" />
  305.             <tr>
  306.                <td id="label_{../@name}_{@name}" class="label"><xsl:value-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if></td>
  307.                <td>
  308.                   <input name="{@name}" type="file" value="" />
  309.                </td>
  310.             </tr>
  311.   </xsl:template>
  312.  
  313.   <xsl:template match="control[@type='hidden']">
  314.             <input name="{@name}" type="hidden" value="{@value}"/>
  315.   </xsl:template>  
  316.  
  317.   <xsl:template name="errorlist">
  318.   <xsl:param name="form_name" />
  319.   <xsl:param name="field" />
  320.     <xsl:if test="//form[@name=$form_name]/control/error">
  321.       <table width="100%" cellpadding="3" cellspacing="0" border="0">
  322.         <tr>
  323.           <td class="errHeader">* All fields are mandatory</td>
  324.         </tr>
  325.         <xsl:for-each select="//form[@name=$form_name]/control/error">
  326.         <tr>
  327.           <td class="errMsg"><xsl:if test="position() = last()"><xsl:attribute name="style">border-bottom: 1px #FF0000 solid;</xsl:attribute></xsl:if><xsl:variable name="name" select="../@name"/><xsl:value-of select="exslt:node-set($field)/fields/field[@name=$name]/@value"/>: <xsl:value-of select="@value"/></td>
  328.         </tr>
  329.         </xsl:for-each>
  330.       </table>
  331.     </xsl:if>
  332.   </xsl:template>
  333.  
  334.  <xsl:template name="submit">
  335.     <input class="btnSignup" type="submit" name="action" value="Save" />
  336.  </xsl:template>
  337.  
  338.  <xsl:template name="cancel">
  339.     <input class="btnSignup" type="reset" name="action" value="Cancel" />
  340.  </xsl:template>
  341.  
  342.  
  343.    <xsl:template match="control[@type='radio']" mode="inline">
  344.   <xsl:param name="label" />
  345.   <xsl:param name="onclick" />
  346.             <tr>
  347.               <td id="label_{../@name}_{@name}" class="label"><xsl:value-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if></td>
  348.               <td>
  349.                 <xsl:apply-templates select="item" mode="inline">
  350.                     <xsl:with-param name="name"><xsl:value-of select="@name"/></xsl:with-param>
  351.                     <xsl:with-param name="onclick"><xsl:value-of select="$onclick"/></xsl:with-param>
  352.                 </xsl:apply-templates>
  353.                 <xsl:if test="error" >
  354.                   <xsl:attribute name="class">inputError</xsl:attribute>
  355.                 </xsl:if>
  356.               </td>
  357.             </tr>
  358.   </xsl:template>
  359.  
  360.     <xsl:template match="item" mode="inline">
  361.   <xsl:param name="name" />
  362.   <xsl:param name="onclick" />
  363.     <input type="radio" value="{@id}" name="{$name}" id="rb_{$name}_{@id}" class="inline">
  364.       <xsl:if test="@selected"><xsl:attribute name="checked"></xsl:attribute></xsl:if>
  365.       <xsl:if test="$onclick" >
  366.         <xsl:attribute name="onclick"><xsl:value-of select="$onclick"/></xsl:attribute>
  367.       </xsl:if>                
  368.     </input><label for="rb_{$name}_{@id}"><xsl:value-of select="@value" /></label>
  369.   </xsl:template>
  370.  
  371.     <xsl:template match="control[@type='text']" mode="disable">
  372.   <xsl:param name="label" />
  373.  
  374.              <tr>
  375.               <td id="label_{../@name}_{@name}" class="label"><xsl:value-of select="$label" /><xsl:if test="validator[@type='required']"> *</xsl:if></td>
  376.               <td>
  377.                 <input type="{@type}" id="{@id}" value="{@value}" name="{@name}" class="text" disabled="disabled">
  378.                   <xsl:if test="error">
  379.                     <xsl:attribute name="class">inputError</xsl:attribute>                    
  380. <!--                    &#160;<xsl:value-of select="error/@value"/>-->
  381.                   </xsl:if>
  382.                 </input>
  383.               </td>
  384.             </tr>
  385.   </xsl:template>
  386.  
  387.  
  388.  
  389. </xsl:stylesheet>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement