WAM105 - Create Your Own Weblet
In this step you will complete the coding of the toolbar menu item weblet. You will add code to:


1.  Switch to the iii_toolbar_menuitem or open it in the editor if necessary. Select the XSL tab.
2.  Immediately following the <xsl:template name="iii_toolbar_menuitem"> tag, paste in the following code to define the weblet parameters. Review the comments for each parameter to see where it will be used.
 
<!-- Used to set the Menu Text on the toolbar image -->       <xsl:param name="menu_text" wd:type="std:mtxt_variable" select="'Caption'" />       <!-- Used to set the image use for the toolbar Icon -->       <xsl:param name="menu_image" wd:type="std:html_img_relative"                  select="'/icons/normal/16/folder_16.png'" />       <!-- Used to set the ALT tag on the toolbar IMG tag -->       <xsl:param name="tooltip_text" wd:type="std:mtxt_variable"                  select="'Caption'" />       <!-- Used to set the Rentry Field Name when the toolbar Icon is clicked -->       <xsl:param name="reentryfield"                  wd:type="std:field_name_in\[wam=$on_click_wamname\]\[webrtn=$on_click_wrname\]"                  select="'STDRENTRY'" wd:tip_id="" />       <!-- Used to set the Rentry Field Value when the toolbar Icon is clicked-->       <xsl:param name="reentryvalue" select="'M'" wd:tip_id="" />       <!-- Used to set the Menu Text on the toolbar image -->       <xsl:param name="hide_if" wd:type="std:boolean" select="false()"                  wd:tip_id="" />       <!-- Used to specify the WAMNAME to call when toolbar Icon is clicked -->       <!-- It will default to the current WAM if no value is specified -->       <xsl:param name="on_click_wamname" wd:type="std:wam"                  select="/lxml:data/lxml:context/lxml:webapplication" wd:tip="" />       <!-- Used to specify the WebRoutine to call when toolbar Icon is clicked -->       <xsl:param name="on_click_wrname"                  wd:type="std:webroutine\[wam=$on_click_wamname\]" wd:tip="" />  
     This block of code defines the parameters that can be passed into the template when the toolbar menu item template is called, in a similar way to calling a subroutine with parameters. Once defined these become the properties that can be set in the Design view for a web page that uses this weblet.
     For example: a parameter, named menu_text, has a default value of 'Caption'. In the completed anchor tag code following, note that the variable $menu_text is used as the caption text below the toolbar item image.
3.  Save your changes.
4.  You will now complete the code for the <A> anchor tag. Copy the following code and paste it to replace the skeleton code for the <A> tag, which you placed there earlier.
<a href="../../../ocument./index.htm" target="_blank"yfield\}','\{$reentryvalue\}');HandleEvent('\{$on_click_wamname\}','\{$on_click_wrname\}');">             <img alt="\{$tooltip_text\}" src="/images/\{$menu_image\}" border="0" />             <br />             <span class="std_menuitem">                <xsl:value-of select="$menu_text" />             </span> </a> 
     Note the following points about these changes:


5.  Save your changes
6.  In this step you will add xsl code to condition the anchor tag, based on the $hide_if parameter.
     Note: The <xsl:if> element must have an </xsl:if> end tag. The <xsl:if> must surround the entire <A HREF . . . .> tag. Add the highlighted code only:
<xsl:if test="not($hide_if)">
       <a href="j.././index.htm" target="_blank". . . 
      </a>
</xsl:if>
 
     Hint: The XSL editor autocomplete function will generate the </xsl:if> when you complete the beginning tag, <xsl:if . . . >. Move this to the required position after the </a> tag.   
      The variable $hide_if is a Boolean, with a default value of 'false' as shown in the parameter definitions.
7.  In this step you will add Weblet Parameter tooltips by copying in the following code, following the </wd:definition>. Note this is the end tag for the block beginning <wd:definition>. Replace iii in <wd:template name with your initials.
<wd:template name="iii_toolbar_menuitem">       <wd:description icon="icons/userdefn.ico">          <wd:name lang="ENG">iii Toolbar Menu Item</wd:name>       </wd:description>       <wd:param name="menu_text">          <wd:tip lang="ENG">Menu Text to display below the image on the toolbar menu item</wd:tip>       </wd:param>       <wd:param name="menu_image">          <wd:tip lang="ENG">Image to display on the toolbar menu item</wd:tip>       </wd:param>       <wd:param name="tooltip_text">          <wd:tip lang="ENG">Tooltip text to display on the toolbar menu item</wd:tip>       </wd:param> </wd:template>
 
Note:

8.  Look towards the top of your toolbar XSL to find the statement:
     <xsl:import href="std_types.xsl" /> and add the following line after that line:
     <xsl:import href="std_keys.xsl" />
The std_keys XSL defines xsl:key's  such as "field-caption" and "field-value" that are used during transformation to extract data from the Data XML output via the WebRoutine.