source: main/trunk/documentation/src/main/webapp/xslt/html/SiteSpecific.xslt @ 25318

Last change on this file since 25318 was 25318, checked in by GarthBraithwaite_STG, 2 months ago

docs - tweaks.

File size: 9.2 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2
3<xsl:stylesheet version="3.0" 
4        xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" 
5        xmlns:ibis="http://www.ibisph.org"
6
7        exclude-result-prefixes="ibis"
8>
9
10        <ibis:doc>
11                <name>html/SiteSpecific</name>
12                <summary>
13                        Main site specific template API definitions and core page API
14                        template overrides.
15                </summary>
16                <description>
17                        This XSLT provides the core, base site specific API related template
18                        definitions.  It should contain global, general definitions like menu
19                        code and general site specific APIs.  If specific definitions are
20                        implemented then the local SiteSpecific.xslt will need to make sure
21                        that the "correct" template definition is implemented.  Otherwise high
22                        level template overrides will take precedence over lower level page
23                        specific definitions as the SiteSpecific.xslt is the last template
24                        imported.
25                </description>
26        </ibis:doc>
27
28        <xsl:param name="Page.applicationTitle" select="'IBIS-PH System Docs'"
29                ibis:doc="Used for the page's title element prefix text"
30        />
31
32
33        <xsl:param name="SiteSpecific.siteNavigationSelections"
34                ibis:doc="Menu XML document/elements which contains all the applicable
35                        'xincluded' sub files.  There are several ways to do this xinclude
36                        functionality.  1) two step process involving a Java code, 2) use
37                        an XSL processor that supports xinclude, 3) create a variable that
38                        contains the entire document fully processed.  The latter approach
39                        is used in this situation because the menu files are quite small and
40                        this option does not involve any outside dependence.  For performance
41                        xincludes might not be a good way to go but for maint it is a good
42                        solution."
43        >
44                <xsl:apply-templates select="document(ibis:getContentPath('xml/selections/navigation/SiteNavigationSelections.xml'))/SELECTIONS/*" mode="ibis.copy"/>
45        </xsl:param>
46
47
48        <xsl:param name="PathSegments" select="'about'" ibis:doc="injected via the commonModelMapListController which most controllers inherit."/>
49        <xsl:param name="SiteSpecific.siteNavigationSelectedSelectionName" select="concat($PathSegments[1], 'Menu')"
50                ibis:doc="Used to reference the the context menu items."
51        />
52        <xsl:param name="SiteSpecific.navigationPathSelections"
53                ibis:doc="Default path segments for bread crumb trails..."
54        >
55                <xsl:for-each select="$PathSegments[position() != last()]">
56                        <xsl:variable name="currentPathSegment" select="position()"/>
57                        <SELECTION>
58                                <CONTENT>
59                                        <xsl:value-of select="concat(upper-case(substring(.,1,1)), substring(., 2))"/>
60                                </CONTENT>
61                        </SELECTION>
62                        <SELECTION>
63                                <CONTENT>Current</CONTENT>
64                        </SELECTION>
65                </xsl:for-each>
66        </xsl:param>
67
68
69        <xsl:param name="SiteSpecific.printPageFooter" 
70                ibis:doc="contents of the print footer to show if media=print"
71        >
72                The information provided above is from the Department of Health's Center for
73                Health Data web site (http://ibis.health.state.gov).  The information published
74                on this website may be reproduced without permission. Please use the following citation:
75                &quot;
76                        Retrieved
77                        <xsl:value-of select="ibis:getFormattedDateTime(current-dateTime())"/>
78                        from Department of Health, Center for Health Data, Indicator-Based Information
79                        System for Public Health Web site: http://ibis.health.state.gov
80                &quot;.
81
82                <xsl:if test="string-length($Page.XMLModifedDate) != 0">
83                        <br/><br/>
84                        Content updated: <xsl:value-of select="$Page.XMLModifedDate"/>
85                </xsl:if>
86        </xsl:param>
87
88
89        <xsl:param name="SiteSpecific.logoutRequest" select="'user/logout'"/>
90
91
92
93        <xsl:template name="Page.banner"/>
94
95
96        <xsl:template name="Page.header" 
97                ibis:doc="State IBIS-PH specific implementation of the 'html.header'
98                        API template.  This template provides the State and DOH banners via
99                        a siteSpecific.headerBanner template call and the blue IBIS-PH
100                        graphic with site navigation menus via the siteSpecific.siteNavigation
101                        template.  To turn off the banners, simply override it with nothing."
102        >
103                <header id="header">
104                        <div class="SiteTitle" title="Documentation for the Indicator Based Information System for Public Health webapp">
105                                IBIS-PH - System Documentation
106                        </div>
107                        <xsl:call-template name="SiteSpecific.siteNavigation"/>
108                        <img src="image/logo.png" class="Logo"/>
109                </header>
110        </xsl:template>
111
112
113        <xsl:template name="SiteSpecific.siteNavigation">
114                <nav id="siteNavigation">
115                        <xsl:call-template name="MenuSelectionsList.megaMenu">
116                                <xsl:with-param name="selections"     select="$SiteSpecific.siteNavigationSelections"/>
117                                <xsl:with-param name="displayControlType" select="'input'"/>
118                                <xsl:with-param name="inputName"      select="'siteMenuPanelsControl'"/>
119                                <xsl:with-param name="containerClass" select="'HorizontalMenu'"/>
120                                <xsl:with-param name="selectedSelectionName" select="$SiteSpecific.siteNavigationSelectedSelectionName"/>
121                        </xsl:call-template>
122                </nav>
123        </xsl:template>
124
125
126        <xsl:template name="Page.content" 
127                ibis:doc="Provides the adopter specific layout by overriding the standard
128                        content container. This layout consists of one main content column. 
129                "
130        >
131                <main id="content" cellpadding="0" cellspacing="0" border="0"
132                        summary="main content container"
133                        caption="main content container"
134                >
135                        <div class="NavigationPathSocialMedia">
136                                <div id="navigationPath" title="Navigation path to get to this page.">
137                                        Path:
138                                        <xsl:call-template name="SelectionsList.processSelections">
139                                                <xsl:with-param name="selections">
140                                                        <SELECTION>
141                                                                <TITLE><xsl:value-of select="$Page.applicationTitle"/></TITLE>
142                                                                <LOCAL_URL>.</LOCAL_URL>
143                                                        </SELECTION>
144                                                        <xsl:copy-of select="$SiteSpecific.navigationPathSelections"/>
145                                                </xsl:with-param>
146                                        </xsl:call-template>
147                                </div>
148                                <xsl:call-template name="SiteSpecific.socialMediaLinks"/>
149                        </div>
150
151                        <xsl:call-template name="Page.contentHeader"/>
152                        <xsl:call-template name="Page.contentBody"/>
153                        <xsl:call-template name="Page.contentFooter"/>
154                </main>
155
156                <!-- Create global general purpose video dialog as all pages have
157                        navigation which use the video dialog.
158                -->
159                <xsl:call-template name="DialogWindow.videoPlayer"/>
160        </xsl:template>
161
162
163        <xsl:template name="Page.footer">
164                <div id="footer">
165                        <footer id="screenPageFooter">
166                                <div class="Row">
167                                        <div class="Bottom">
168                                                <div>
169                                                        The information published on this website may be
170                                                        reproduced without permission. Please use the following citation: <br/>
171                                                        &quot;Retrieved <xsl:value-of select="ibis:getFormattedDate(current-date())"/> 
172                                                        from the Department of Health Indicator-Based Information System
173                                                        <br/>(IBIS-PH) for Public Health Web site: http://ibis.health.state.gov&quot;
174                                                        <xsl:if test="string-length($Page.XMLModifedDate) != 0">
175                                                                <div class="LastModified">Page Content Updated: <xsl:value-of select="$Page.XMLModifedDate"/></div>
176                                                        </xsl:if>
177                                                </div>
178                                        </div>
179                                </div>
180                        </footer>
181               
182                        <!-- had to wrap a div within so FF would format correctly... -->
183                        <footer id="printPageFooter">
184                                <xsl:copy-of select="$SiteSpecific.printPageFooter"/>
185                        </footer>
186                </div>
187
188        </xsl:template>
189
190
191        <!-- options to share page: See: https://css-tricks.com/simple-social-sharing-links/ -->
192        <xsl:template name="SiteSpecific.socialMediaLinks">
193                <nav class="SocialMedia" title="options to easily share this page.">
194                        <span class="Title">Share:</span>
195                        <ul>
196                                <li>
197                                        <!-- this also works: a href="javascript:window.open('http://www.linkedin.com/shareArticle?mini=true&amp;url=' + encodeURI(location.href))"
198                                                Issues with target=_blank as the location.href is the
199                                                blank window.  Need to get a handle to the window.open
200                                                object so can pass vars but if doing that might as well
201                                                simply open with the URL!!!
202
203                                                http://www.sharelinkgenerator.com/:
204                                                https://www.facebook.com/sharer/sharer.php?u=msn.com
205                                                https://twitter.com/intent/tweet?text=msn.com
206                                        -->
207                                        <a href="javascript:window.open('http://www.linkedin.com/shareArticle?mini=true&amp;url=' + window.encodedPageRequestURI)"
208                                                title="Share this page on LinkedIn" 
209                                                class="FontIcon LinkedIn"
210                                        >
211                                        </a>
212                                </li>
213                                <li>
214                                        <a href="javascript:window.open('https://www.facebook.com/sharer.php?u=' + window.encodedPageRequestURI)"
215                                                title="Share this page on Facebook" 
216                                                class="FontIcon Facebook"
217                                        >
218                                        </a>
219                                </li>
220                                <li>
221                                        <a href="javascript:window.open('https://twitter.com/intent/tweet?url=' + window.encodedPageRequestURI)" 
222                                                title="Share this page on Twitter" 
223                                                class="FontIcon Twitter"
224                                        >
225                                        </a>
226                                </li>
227                                <li>
228                                        <a href="javascript:location.href='mailto:?body=' + window.encodedPageRequestURI" 
229                                                title="Email this page's URL" 
230                                                class="FontIcon Email"
231                                        >
232                                        </a>
233                                </li>
234                                <li>
235                                        <a href="javascript:" onclick="window.print();return false;"
236                                                title="Print this page and share it (printer friendly version)" 
237                                                rel="nofollow" target="_blank"
238                                                class="FontIcon PrinterFriendly"
239                                        >
240                                        </a>
241                                </li>
242                        </ul>
243                </nav>
244        </xsl:template>
245
246</xsl:stylesheet>
247<!-- ============================= End of File ============================= -->
248
Note: See TracBrowser for help on using the repository browser.