source: main/trunk/ibisph-view/src/main/webapp/xslt/html/ContentContainer.xslt @ 19868

Last change on this file since 19868 was 19798, checked in by GarthBraithwaite_STG, 3 years ago

view - topic content updated for structure. NM resource html content files added. newer kendo fonts. more Panellist to megamenu and popup css updates. Some rem vs em css updates. Processing of content through ibis.copy.

File size: 24.5 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<xsl:stylesheet version="3.0" 
3        xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" 
4        xmlns:ibis="http://www.ibisph.org"
5        xmlns:xs  ="http://www.w3.org/2001/XMLSchema"
6
7        exclude-result-prefixes="ibis xs"
8>
9
10        <ibis:doc>
11                <name>html/ContentContainer</name>
12                <summary>Templates for normal content, expandable, drop down, popup type content blocks.</summary>
13                <description>
14                        Main template block code used throughout the app.
15
16                        The params defined below are defaults used by the templates so that
17                        ss.xslt (at any level) can set these to control default behavior.  Example
18                        if an adopter wants to have all content blocks default to single select
19                        radio type expandable they'd set the main ss.xslt to override:
20                        ContentContainer.expandableControlType = 'radio'
21                        ContentContainer.defaultContentBlockType = 'expandable'
22                        Adopters can control with lower level ss.xslt code to change as needed.
23                       
24                        Another example is if wanting to have fluid, responsive pages.  This is
25                        done with setting the container class with the appropriate css size related
26                        definitions.
27                </description>
28        </ibis:doc>
29
30
31        <!-- ================================= M A I N   C O N T R O L  P A R A M S -->
32        <xsl:param name="ContentContainer.defaultContentBlockType" select="'fixed'"
33                ibis:doc="Used for the default contentBlock call.  This allows for SS.xslt
34                        to override and control page behavior.  Valid values are
35                        'fixed' = standard always showing titled text block.
36                        'expandable' = expandable content.
37                        'inline' = no container.
38                "
39        />
40        <xsl:param name="ContentContainer.expandableControlType" select="'checkbox'"
41                ibis:doc="Default expandable content control type.  Valid values are 'radio' and 'checkbox'."
42        />
43        <xsl:param name="ContentContainer.expandableControlName" select="'defaultPageExpandableContentGroup'"
44                ibis:doc="Default expandable content control name that is used for 'radio'
45                        type expandable content controls.
46                "
47        />
48
49        <xsl:param name="ContentContainer.defaultContentContainerClass" select="'Container'"
50                ibis:doc="Used as a default for fixed and expandabale block containers. 
51                        This allows for SS.xslt to override and add more content container
52                        classes as needed.
53                "
54        />
55        <xsl:param name="ContentContainer.defaultFixedContentContainerClass" select="$ContentContainer.defaultContentContainerClass"
56                ibis:doc="Fixed block container css - defaults to ContentContainer.defaultContentContainerClass."
57        />
58        <xsl:param name="ContentContainer.expandableContentContainerClass" select="$ContentContainer.defaultContentContainerClass"
59                ibis:doc="Expandable block content container css - defaults to ContentContainer.defaultContentContainerClass."
60        />
61
62        <xsl:param name="ContentContainer.addWikiAttributeToContentContainer" select="false()"
63                ibis:doc="Used for the default contentBlock addWikiControl.  Value values are true(), false() - default = false."
64        />
65
66        <xsl:param name="ContentContainer.titleLevel" select="3" as="xs:integer"
67                ibis:doc="Used to control the default Hx title element creation for all   
68                        block containers.  This allows for SS.xslt to override the default. 
69                        Default = 3.  Value of 0 turns off.
70                "
71        />
72
73
74
75        <!-- =================================================== T E M P L A T E S -->
76        <xsl:template name="ContentContainer.contentBlock"
77                ibis:doc="Returns a titled block based on the contentBlockType parameter. 
78                        This template is heavily used for all general content blocks so that
79                        and adopter can easily control their sites block behavior via ss.xslt
80                        parameter overrides. 
81
82                        Used in HL index ul/li block, HL page Highlight.contentBlock HTML and
83                        fields, CP snapshot ul/li and buttons - HTML, QM result data sources
84                        ul/li map chart table, user selections HTML table, ip avail serv,
85                        indicator content block - so all IP fields, IP view list ul/li
86                "
87        >
88                <xsl:param name="containerID" ibis:doc="Optional ID to be used for the container."/>
89                <xsl:param name="contentContainerClass"/>
90                <xsl:param name="additionalClasses" ibis:doc="Optional css class to append to the outermost element."/>
91
92                <xsl:param name="contentBlockType" select="$ContentContainer.defaultContentBlockType"
93                        ibis:doc="Optional param to control the block type.  Default is ContentContainer.defaultContentBlockType."
94                />
95                <xsl:param name="expandableControlType" ibis:doc="Optional value passed to expandable template if contentBlockType is 'expandable'."/>
96                <xsl:param name="expandableContentShow" ibis:doc="Optional value passed to expandable template if contentBlockType is 'expandable'."/>
97                <xsl:param name="expandableControlName" 
98                        ibis:doc="Optional param that is only needed when the expandableControlType 
99                                is 'radio'.  This results in a UI where only 1 expandable block
100                                will be displayed at a time (hence the radio input functionality).
101                        "
102                />
103                <xsl:param name="expandableControlAccesskey" ibis:doc="Optional param that is a quick access key used for the expandable control."/>
104
105                <xsl:param name="title"       ibis:doc="Optional title text to be displayed"/>
106                <xsl:param name="titleLevel"  select="$ContentContainer.titleLevel" as="xs:integer"
107                        ibis:doc="Optional title level - html Hx element control.  Defaults
108                                to ContentContainer.titleLevel, value of 0 turns off.
109                        "
110                />
111                <xsl:param name="description" ibis:doc="Optional description to be placed in the HTML Hx element's title attribute."/>
112
113                <xsl:param name="content" ibis:doc="Content which can include text and
114                                optional sub elements - content is simply copied into the output.
115                                If no content then the block is NOT created.
116                        "
117                />
118                <xsl:param name="addWikiAttribute" select="$ContentContainer.addWikiAttributeToContentContainer" 
119                        ibis:doc="boolean that controls if container should the wiki attribute added (so script can process for embedded wiki markup)."
120                />
121
122<!-- xsl:message select="concat('ContentContainer title level: ', $titleLevel, ', title: ', $title)"/ -->
123                <xsl:choose>
124                        <xsl:when test="$contentBlockType = 'expandable'">
125                                <xsl:call-template name="ContentContainer.expandable">
126                                        <xsl:with-param name="containerID"      select="$containerID"/>
127                                        <xsl:with-param name="contentContainerClass" select="if(0 != string-length($contentContainerClass)) then $contentContainerClass else $ContentContainer.expandableContentContainerClass"/>
128                                        <xsl:with-param name="additionalClasses"  select="$additionalClasses"/>
129                                        <xsl:with-param name="title"            select="$title"/>
130                                        <xsl:with-param name="titleLevel"       select="$titleLevel"/>
131                                        <xsl:with-param name="description"      select="$description"/>
132
133                                        <xsl:with-param name="controlType"      select="$expandableControlType"/>
134                                        <xsl:with-param name="controlName"      select="$expandableControlName"/>
135                                        <xsl:with-param name="show"             select="$expandableContentShow"/>
136                                       
137                                        <xsl:with-param name="content"          select="$content"/>
138                                        <xsl:with-param name="addWikiAttribute" select="$addWikiAttribute"/>
139                                </xsl:call-template>
140                        </xsl:when>
141                        <xsl:when test="$contentBlockType = 'fixed'">
142                                <xsl:call-template name="ContentContainer.fixed">
143                                        <xsl:with-param name="containerID"      select="$containerID"/>
144                                        <xsl:with-param name="contentContainerClass" select="if(0 != string-length($contentContainerClass)) then $contentContainerClass else $ContentContainer.defaultFixedContentContainerClass"/>
145                                        <xsl:with-param name="additionalClasses"  select="$additionalClasses"/>
146                                        <xsl:with-param name="title"            select="$title"/>
147                                        <xsl:with-param name="titleLevel"       select="$titleLevel"/>
148                                        <xsl:with-param name="description"      select="$description"/>
149                                        <xsl:with-param name="content"          select="$content"/>
150                                        <xsl:with-param name="addWikiAttribute" select="$addWikiAttribute"/>
151                                </xsl:call-template>
152                        </xsl:when>
153
154                        <!-- if not fixed or expandabale then inline - no content block container -->
155                        <xsl:otherwise>
156                                <xsl:call-template name="ContentContainer.title">
157                                        <xsl:with-param name="title"       select="$title"/>
158                                        <xsl:with-param name="titleLevel"  select="$titleLevel"/>
159                                        <xsl:with-param name="description" select="$description"/>
160                                </xsl:call-template>
161                                <xsl:apply-templates select="$content/(text() | *)" mode="ibis.copy"/>
162                        </xsl:otherwise>
163                </xsl:choose>
164        </xsl:template>
165
166
167
168        <xsl:template name="ContentContainer.fixed" 
169                ibis:doc="Non expandable fixed content block.  Called directly or via the
170                        general contentBlock template. 
171                "
172        >
173                <xsl:param name="containerID" ibis:doc="Optional ID to be used for the container."/>
174                <xsl:param name="contentContainerClass" select="$ContentContainer.defaultFixedContentContainerClass"/>
175                <xsl:param name="additionalClasses" ibis:doc="optional css class appended to the blocks cc.ContentContainer value."/>
176
177                <xsl:param name="title"       ibis:doc="Optional block Hx elemenet title text."/>
178                <xsl:param name="titleLevel"  select="$ContentContainer.titleLevel" as="xs:integer"/>
179                <xsl:param name="description" ibis:doc="Optional title on hover text."/>
180
181                <xsl:param name="content" ibis:doc="Text string or HTML content to be displayed.
182                        If content is blank then this code does not do anything."
183                />
184                <xsl:param name="addWikiAttribute" select="$ContentContainer.addWikiAttributeToContentContainer"/>
185
186                <xsl:param name="contentContinerElementName" select="if(0 != string-length($title)) then 'section' else 'div'"/>
187
188<!-- xsl:message select="concat('xxxxxxxxxxxxxx length: ', string-length($title), ', title: ', $title)"/ -->
189                <xsl:if test="exists($content/*) or (0 != string-length($content))">
190                        <xsl:element name="{$contentContinerElementName}">
191                                <xsl:if test="(0 != string-length($contentContainerClass)) or (0 != string-length($additionalClasses))"> 
192                                        <xsl:attribute name="class" select="concat($contentContainerClass, ' ', $additionalClasses)"/>
193                                </xsl:if>
194                                <xsl:if test="0 != string-length($containerID)"><xsl:attribute name="id" select="$containerID"/></xsl:if>
195                                <xsl:if test="$addWikiAttribute = true()"><xsl:attribute name="wiki" select="'true'"/></xsl:if>
196
197                                <xsl:call-template name="ContentContainer.title">
198                                        <xsl:with-param name="title"       select="$title"/>
199                                        <xsl:with-param name="titleLevel"  select="$titleLevel"/>
200                                        <xsl:with-param name="description" select="$description"/>
201                                </xsl:call-template>
202                                <xsl:apply-templates select="$content/(text() | *)" mode="ibis.copy"/>
203                        </xsl:element>
204                </xsl:if>
205        </xsl:template>
206
207
208
209        <xsl:template name="ContentContainer.expandable"
210                ibis:doc="Provides ability to more easily embed an expandable content block
211                        into the page.  Note that the approp CSS will need to be included.
212                        The control and container require an 'id' attribute which is created
213                        based on the supplied content element.  The 'content' text() and sub
214                        elements will be ibis:copied into the assoc content container DIV.
215
216                        used everywhere - content is anything - lots of HTML.  The convertCRsToBRs
217                        flag was only set to true for IP stuff that is also wiki so not needed.
218                "
219        >
220                <xsl:param name="containerID" ibis:doc="Optional ID to be used for the container."/>
221                <xsl:param name="contentContainerClass" select="$ContentContainer.expandableContentContainerClass"/>
222
223                <xsl:param name="additionalClasses" 
224                        ibis:doc="Optional class to be appended to the ExpandableContent
225                                container css class.  Note that this string value can be a
226                                single css class or a series.
227                        "
228                />
229
230                <xsl:param name="title"      select="'Click here to show more content.'"/>
231                <xsl:param name="titleLevel" select="$ContentContainer.titleLevel" as="xs:integer"
232                        ibis:doc="Optional title level - html Hx element control.  Defaults
233                                to ContentContainer.titleLevel, value of 0 turns off.
234                        "
235                />
236                <xsl:param name="description" select="concat('Show/hide selection list control for ', $title)"
237                        ibis:doc="Optional title on hover text."
238                />
239                <xsl:param name="subTitleContent" ibis:doc="Optional text or content to be copied after the title string."/>
240
241                <xsl:param name="controlType" select="$ContentContainer.expandableControlType"
242                        ibis:doc="Optional param that controls the type of control to build.
243                                Default is ContentContainer.expandableControlType which defaults
244                                to a 'checkbox'.  Checkbox results in a click bar that opens/
245                                closes the content container.  If 'radio' and controlName is
246                                the same as another expandable block then only one container will
247                                be displayed at a time (hence the radio input functionality).
248                        "
249                />
250                <xsl:param name="controlID"
251                        ibis:doc="Optional ID to be used for the input control.  If no value
252                                then an ID is generated based on the content element.  This param
253                                provides a mechanism to name the control for fine grained css.
254                        "
255                />
256                <xsl:param name="controlName" select="$ContentContainer.expandableControlName"
257                        ibis:doc="Optional param that is only needed when the controlType is
258                                'radio'.  This results in a UI where only 1 expandable block
259                                will be displayed at a time (hence the radio input functionality).
260                                Defaults to ContentContainer.expandableControlName.
261                        "
262                />
263
264                <xsl:param name="inputOnChangeAttribute" ibis:doc="input onchange attribute"/>
265
266                <xsl:param name="accesskey" ibis:doc="Optional control's quick access key."/>
267                <xsl:param name="show" select="false()"
268                        ibis:doc="Optional flag value that if true sets the input to 'checked'
269                                which results in the block being shown/expanded.  Default=false.
270                        "
271                />
272
273                <xsl:param name="content" ibis:doc="Text string or HTML content to be displayed.
274                        If content is blank then this code does not do anything."
275                />
276
277                <xsl:param name="addWikiAttribute" select="$ContentContainer.addWikiAttributeToContentContainer"/>
278
279
280                <!-- required values so if '' then needs to be set to something valid. -->
281                <xsl:variable name="id"          select="if(string-length($controlID) != 0) then $controlID else concat('expandableContentControl.', generate-id($content))"/>
282                <xsl:variable name="controlType" select="if(string-length($controlType) != 0) then $controlType else 'checkbox'"/>
283<!--
284<xsl:message select="concat('************ Title: ', $title, ' TL: ', $titleLevel, ' Add WIKI: ', $addWikiAttribute, ' TL test: ', boolean($titleLevel) and ($titleLevel != 0))"/>
285-->
286                <xsl:if test="exists($content/*) or (string-length($content) != 0)">
287                        <section class="ExpandableContent {$additionalClasses}">
288                                <input id="{$id}" type="{$controlType}" class="Control">
289                                        <xsl:if test="$show">
290                                                <xsl:attribute name="checked" select="'checked'"/>
291                                        </xsl:if>
292                                        <xsl:if test="($controlType = 'radio') and (0 != string-length($controlName))">
293                                                <xsl:attribute name="name" select="$controlName"/>
294                                        </xsl:if>
295                                        <xsl:if test="0 != string-length($inputOnChangeAttribute)">
296                                                <xsl:attribute name="onchange" select="$inputOnChangeAttribute"/>
297                                        </xsl:if>
298                                </input>
299                                <xsl:call-template name="ContentContainer.title">
300                                        <xsl:with-param name="titleLevel"  select="$titleLevel"/>
301                                        <xsl:with-param name="description" select="$description"/>
302                                        <xsl:with-param name="titleContent">
303                                                <label for="{$id}" title="Expandable content control for {$title}" class="FontIcon">
304                                                        <xsl:if test="boolean($accesskey)">
305                                                                <xsl:attribute name="accesskey" select="$accesskey"/>
306                                                        </xsl:if>
307                                                        <xsl:value-of select="$title"/>
308                                                        <xsl:copy-of select="$subTitleContent"/>
309                                                </label>
310                                        </xsl:with-param>
311                                </xsl:call-template>
312
313                                <div class="{$contentContainerClass}">
314                                        <xsl:if test="$addWikiAttribute = true()"><xsl:attribute name="wiki" select="'true'"/></xsl:if>
315                                        <xsl:apply-templates select="$content/(text() | *)" mode="ibis.copy"/>
316                                </div>
317                        </section>
318                </xsl:if>
319        </xsl:template>
320
321
322        <xsl:template name="ContentContainer.contentBlockWithDelimitedTitleTextsNodesets"
323                ibis:doc="Creates a titled content block that has delimited title texts
324                        nodes (with nodes delimited via the delimitedTitleTextsNodes template.
325
326                        Loops the nodesets with each nodeset being an optinoal [TITLE]
327                        and 1:n TEXT nodes.  Each nodeset is contained within a new fixed
328                        content block and delimited via the delimiter param.
329
330                        1:n fixedBlocks with each fixedBlock having delimited TEXT blocks. 
331
332                        Used for OVERVIEW type blocks and others that have TITLE and 1:n TEXT blocks.
333                        Struct passed in: set of nodes */{[TITLE], (n)TEXTs}
334                "
335        >
336                <xsl:param name="containerID"     ibis:doc="Optional ID to be used for the container."/>
337                <xsl:param name="additionalClasses" ibis:doc="Optional css class to add to the content container."/>
338
339                <xsl:param name="contentBlockType" select="$ContentContainer.defaultContentBlockType"
340                        ibis:doc="Optional param to control the block type.  Default is ContentContainer.defaultContentBlockType."
341                />
342                <xsl:param name="expandableControlType" ibis:doc="Optional value passed to expandable template if contentBlockType is 'expandable'."/>
343                <xsl:param name="expandableContentShow" ibis:doc="Optional value passed to expandable template if contentBlockType is 'expandable'."/>
344                <xsl:param name="expandableControlName" 
345                        ibis:doc="Optional param that is only needed when the expandableControlType 
346                                is 'radio'.  This results in a UI where only 1 expandable block
347                                will be displayed at a time (hence the radio input functionality).
348                        "
349                />
350                <xsl:param name="expandableControlAccesskey" ibis:doc="Optional param that is a quick access key used for the expandable control."/>
351
352                <xsl:param name="title"       ibis:doc="Optional title text to be displayed"/>
353                <xsl:param name="titleLevel"  select="$ContentContainer.titleLevel" as="xs:integer"/>
354                <xsl:param name="description" ibis:doc="Optional description to be placed in the HTML Hx element's title attribute."/>
355
356                <xsl:param name="titleAndTextsNodeset" ibis:doc="actual content - series of contained */TITLE and TEXTs elements."/>
357                <xsl:param name="titleAndTextsNodesetDelimiter"><br/></xsl:param> <!-- fixed blocks have a div container so 2 brs is too much -->
358                <xsl:param name="skipTitleAndTextsNodesetDelimiterIfTitle" select="true()"/>
359                <xsl:param name="textNodeDelimiter"><br/><br/></xsl:param>
360                <xsl:param name="addWikiAttribute" select="$ContentContainer.addWikiAttributeToContentContainer" 
361                        ibis:doc="boolean that controls if container should the wiki attribute added (so script can process for embedded wiki markup)."
362                />
363<!--
364<xsl:copy-of select="$titleAndTextsNodeset"/>
365<xsl:message select="'================'"/>
366<xsl:message select="count($titleAndTextsNodeset)"/>
367<xsl:message select="$titleAndTextsNodeset"/>
368<xsl:message select="count($titleAndTextsNodeset/*/TEXT)"/>
369<xsl:message select="$titleAndTextsNodeset/*/TEXT"/>
370<xsl:message select="'================'"/>
371-->
372                <xsl:call-template name="ContentContainer.contentBlock">
373                        <xsl:with-param name="containerID"     select="$containerID"/>
374                        <xsl:with-param name="additionalClasses" select="$additionalClasses"/>
375                        <xsl:with-param name="title"           select="$title"/>
376                        <xsl:with-param name="titleLevel"      select="$titleLevel"/>
377                        <xsl:with-param name="description"     select="$description"/>
378
379                        <xsl:with-param name="contentBlockType"      select="$contentBlockType"/>
380                        <xsl:with-param name="expandableControlType" select="$expandableControlType"/>
381                        <xsl:with-param name="expandableControlName" select="$expandableControlName"/>
382                        <xsl:with-param name="expandableContentShow" select="$expandableContentShow"/>
383
384                        <xsl:with-param name="addWikiAttribute" select="$addWikiAttribute"/>
385                        <xsl:with-param name="content">
386                                <xsl:for-each select="$titleAndTextsNodeset">
387                                        <xsl:sort select="SORT_ODRER" order="ascending" data-type="number"/>
388                                        <xsl:if test="(position() != 1) and not($skipTitleAndTextsNodesetDelimiterIfTitle and (string-length(TITLE) != 0))"><xsl:copy-of select="$titleAndTextsNodesetDelimiter"/></xsl:if>
389                                        <xsl:call-template name="ContentContainer.fixedContentBlockWithDelimitedTextNodes">
390                                                <xsl:with-param name="titleLevel"       
391                                                        select="if(0 &lt; $titleLevel) then $titleLevel+1 else $ContentContainer.titleLevel+1"
392                                                />
393                                                <xsl:with-param name="titleAndTextsNode" select="."/>
394                                                <xsl:with-param name="textNodeDelimiter" select="$textNodeDelimiter"/>
395                                        </xsl:call-template>
396                                </xsl:for-each>
397                        </xsl:with-param>
398                </xsl:call-template>
399        </xsl:template>
400
401
402        <xsl:template name="ContentContainer.fixedContentBlockWithDelimitedTextNodes"
403                ibis:doc="creates a fixed content block then calls the delimitedNodesetContent
404                        template which loops and delimits the TEXT nodes.
405                       
406                        Used by: contentBlockWithDelimitedTitleTextsNodesets
407                "
408        >
409                <xsl:param name="titleLevel" select="$ContentContainer.titleLevel" as="xs:integer"/>
410                <xsl:param name="titleAndTextsNode" ibis:doc="node with [TITLE] and 1-n TEXTs."/>
411                <xsl:param name="textNodeDelimiter"><br/><br/></xsl:param>
412                <xsl:param name="addWikiAttribute" select="$ContentContainer.addWikiAttributeToContentContainer" 
413                        ibis:doc="boolean that controls if container should the wiki attribute added (so script can process for embedded wiki markup)."
414                />
415
416                <xsl:call-template name="ContentContainer.fixed">
417                        <xsl:with-param name="title"            select="TITLE"/>
418                        <xsl:with-param name="titleLevel"       select="$titleLevel"/>
419                        <xsl:with-param name="description"      select="DESCRIPTION"/>
420                        <xsl:with-param name="addWikiAttribute" select="$addWikiAttribute"/>
421                        <xsl:with-param name="content">
422                                <xsl:call-template name="ContentContainer.delimitedNodesetContent">
423                                        <xsl:with-param name="contentNodeset" select="TEXT"/>
424                                        <xsl:with-param name="delimiter" select="$textNodeDelimiter"/>
425                                </xsl:call-template>
426                        </xsl:with-param>
427                </xsl:call-template>
428        </xsl:template>
429
430
431        <xsl:template name="ContentContainer.delimitedNodesetContent"
432                ibis:doc="Loops through nodeset (set of peer nodes), copies current node 
433                        content and separates each node's content with the supplied delimiter
434                        (typically 2 CR's \n\n or 2 HTML BR elements.  Default are 2 BR's.
435                "
436        >
437                <xsl:param name="contentNodeset"/>
438                <xsl:param name="delimiter"><br/><br/></xsl:param>
439
440                <xsl:for-each select="$contentNodeset">
441                        <xsl:if test="position() != 1"><xsl:copy-of select="$delimiter"/></xsl:if>
442                        <xsl:copy-of select="current()/text() | current()/*"/>
443                </xsl:for-each>
444        </xsl:template>
445
446
447        <xsl:template name="ContentContainer.title"
448                ibis:doc="Show title if specified.  IF there is a title it should have an
449                        appropriate block title so an Hx unless specifically set to 0 which
450                        means to not use a Hx.  If title and titleLevel is not specified then
451                        the ContentContainer.titleLevel is used.
452                "
453        >
454                <xsl:param name="title"      ibis:doc="Optional title text to be displayed"/>
455                <xsl:param name="titleLevel" as="xs:integer"
456                        ibis:doc="Optional title level - html Hx element control.  Defaults
457                                to ContentContainer.titleLevel, value of 0 turns off.
458                        "
459                />
460                <xsl:param name="description" ibis:doc="Optional - used for Hx title attribute."/>
461                <xsl:param name="titleContent" select="if($title instance of element()) then $title/text() else $title"
462                        ibis:doc="Allows for labels etc to be placed within the block title
463                                element.  Defaults to the title parameter.
464                        "
465                />
466<xsl:message select="concat('ContentContainer.title level: ', $titleLevel, ', title: ', $title)"/>
467<xsl:message select="$titleContent"/>
468<!-- xsl:message select="concat('ContentContainer.title level: ', $titleLevel, ', titleContent: ', $titleContent)"/ -->
469
470                <xsl:if test="0 != string-length(normalize-space(string($titleContent)))">
471                        <xsl:choose>
472                                <xsl:when test="0 = $titleLevel">
473                                        <xsl:copy-of select="$titleContent"/>
474                                </xsl:when>
475                                <xsl:when test="0 &lt; $titleLevel">
476                                        <xsl:element name="h{$titleLevel}">
477                                                <xsl:attribute name="title" select="$description"/>
478                                                <xsl:copy-of select="$titleContent"/>
479                                        </xsl:element>
480                                </xsl:when>
481                                <xsl:otherwise>
482                                        <xsl:element name="h{$ContentContainer.titleLevel}">
483                                                <xsl:attribute name="title" select="$description"/>
484                                                <xsl:copy-of select="$titleContent"/>
485                                        </xsl:element>
486                                </xsl:otherwise>
487                        </xsl:choose>
488                </xsl:if>
489        </xsl:template>
490
491
492
493        <!-- 6/12/2015 removed related template name="ContentContainer.carriageReturnToBRTag"
494                Only called from ContentContainer.expandable  IF  convertCRsToBRs is set.
495                Now this code is using wiki formatting so not using.
496        -->
497
498</xsl:stylesheet>
499<!-- ============================= End of File ============================= -->
Note: See TracBrowser for help on using the repository browser.