page_frameset.html
1 <!DOCTYPE html>
2 <html lang="fr">
3 <head>
4 <base href="${base_url}">
5 <title>${favourite} - ${page_name}</title>
6 <meta http-equiv="X-UA-Compatible" content="IE=edge">
7 <meta charset="${encoding}">
8 <meta http-equiv="Content-Type" content="text/html;charset=${encoding}">
9 <meta http-equiv="Content-Language" content="fr">
10 <meta name="author" content="${meta_author}">
11 <meta name="copyright" content="${meta_copyright}">
12 <meta name="keywords" content="${meta_keywords}">
13 <meta name="description" content="${meta_description}">
14 <meta name="generator" content="${meta_generator}">
15 <!-- Dublin Core metadatas -->
16 <meta name="DC.Creator" content="${meta_author}">
17 <meta name="DC.Rights" content="${meta_copyright}">
18 <meta name="DC.Subject" content="${meta_keywords}">
19 <meta name="DC.Description" content="${meta_description}">
20 <#if dskey('themeparisfr.site_property.robotIndex.checkbox')?number = 0>
21 <!-- ========================================================== -->
22 <!-- Robots noindex -->
23 <!-- ========================================================== -->
24 <meta name="robots" content="noindex" data-test="${dskey('themeparisfr.site_property.robotIndex.checkbox')}">
25 <meta name="googlebot" content="noindex">
26 </#if>
27 <!-- Set the viewport width to device width for mobile -->
28 <meta name="viewport" content="width=device-width, initial-scale=1.0">
29 <!-- Le style -->
30 <#if plugin_theme?? ><#assign thetheme=plugin_theme /><#else><#assign thetheme=theme /></#if>
31 <link href="${thetheme.pathCss}/all.min.css" crossorigin="anonymous" rel="stylesheet">
32 <link href="${thetheme.pathCss}/bootstrap.min.css" crossorigin="anonymous" rel="stylesheet">
33 <!-- Theme CSS include -->
34 <link href="${thetheme.pathCss}/theme-parisfr.min.css" crossorigin="anonymous" rel="stylesheet">
35 <!-- Custom site styles include -->
36 <link href="${thetheme.pathCss}/page_template_styles.css" crossorigin="anonymous" rel="stylesheet">
37 <!-- Plugins CSS includes -->
38 <link href="js/jquery/plugins/toastr/toastr.min.css" crossorigin="anonymous" rel="stylesheet">
39 ${plugins_css_links}
40 <!-- Custom site styles include -->
41 <#assign optHeaderCss=.get_optional_template('themeparisfr_frameset_header_css.html')>
42 <#if optHeaderCss.exists><@optHeaderCss.include /></#if>
43 <link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png">
44 <link rel="icon" type="image/png" sizes="32x32" href="./favicon-32x32.png">
45 <link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png">
46 <link rel="manifest" href="./site.webmanifest">
47 <link rel="mask-icon" href="./safari-pinned-tab.svg" color="#071f32">
48 <meta name="msapplication-TileColor" content="#ffffff">
49 <meta name="theme-color" content="#ffffff">
50 ${rss?default("<!-- no RSS feed -->")}
51 <!-- Site JS Include -->
52 <#-- Template to add js to header in page_frameset.html theme template -->
53 <!-- Included JS Files -->
54 <#assign optHeaderJs=.get_optional_template('themeparisfr_frameset_header_js.html')>
55 <#if optHeaderJs.exists><@optHeaderJs.include /></#if>
56 </head>
57 <body id="body-page<#if page_id = 1>-home<#else>-${page_id!}</#if>">
58 <!-- Accessibility Skip Nav Menu-->
59 <@skipNav />
60 <!-- header -->
61 <header id="main-banner-${page_id}" role="banner">
62 <#assign optMainBanner=.get_optional_template('themeparisfr_frameset_main_banner.html')>
63 <#if optMainBanner.exists>
64 <@optMainBanner.include />
65 </#if>
66 <#-- Add your own Nav Menu Content here with @mainNavItem macro -->
67 <#assign optMainNav=.get_optional_template('themeparisfr_frameset_main_nav.html')>
68 <#if optMainNav.exists><@optMainNav.include /></#if>
69 </header>
70 <!-- end header -->
71 <#if page_id > 1>
72 <!-- breadcrumb -->
73 ${page_path}
74 <!-- breadcrumb -->
75 </#if>
76 <!-- main container -->
77 <main id="main" role="main">
78 <#assign optMainContentHeader=.get_optional_template('themeparisfr_frameset_content_header.html')>
79 <#if optMainContentHeader.exists><@optMainContentHeader.include /></#if>
80 ${page_content}
81 <#assign optMainContentFooter=.get_optional_template('themeparisfr_frameset_content_footer.html')>
82 <#if optMainContentFooter.exists><@optMainContentFooter.include /></#if>
83 </main>
84 <!-- Footer -->
85 <#-- Add your own Footer Menu Content here with @mainNavItem macro -->
86 <#assign optMenuFooter=.get_optional_template('themeparisfr_frameset_menu_footer.html')>
87 <#if optMenuFooter.exists><@optMenuFooter.include /></#if>
88 <!-- Le javascript
89 ================================================== -->
90 <!-- Placed at the end of the document so the pages load faster -->
91 <!-- Theme JS includes -->
92 <#-- Template to add js to footer in page_frameset.html theme template -->
93 <script src="js/bootstrap.bundle.min.js"></script>
94 <script src="js/jquery/plugins/validation/jquery.validate.min.js"></script>
95 <script src="js/jquery/plugins/toastr/toastr.min.js"></script>
96 <#-- Plugins JS includes -->
97 ${plugins_javascript_links!}
98 <!-- Theme - Base JS init -->
99 <script>
100 var longMenu=${dskey('themeparisfr.site_property.menu.longMenu.checkbox')!};
101 var xssChars='${dskey("themeparisfr.site_property.xss.xssChars")!}';
102 var xssMsg='${dskey("themeparisfr.site_property.xss.xssMsg")!}';
103 </script>
104 <script src="js/themeparisfr.min.js"></script>
105 <#if dskey('themeparisfr.site_property.bannerBrowserWarning.checkbox')?number = 1>
106 <!-- Browser detection and warning old browser -->
107 <script src="js/es5.js"></script>
108 <script>
109 window.addEventListener( "load", function() {
110 const browser = bowser.getParser(window.navigator.userAgent);
111 const browserName=browser['parsedResult']['browser']['name'];
112 const browserVer=browser['parsedResult']['browser']['version'];
113 const isValidBrowser = browser.satisfies({
114 // declare browsers per OS
115 windows: {
116 "internet explorer": ">11",
117 "edge" : ">=80",
118 },
119 macos: {
120 safari: ">=6"
121 },
122 ios: {
123 safari: ">=6"
124 },
125 // or in general
126 chrome: ">=80",
127 firefox: ">=52",
128 opera: ">=22",
129 });
130 if ( !isValidBrowser ){
131 toastr.options = {
132 "closeButton": true,
133 "debug": false,
134 "newestOnTop": false,
135 "progressBar": false,
136 "positionClass": "toast-top-full-width browser-warning",
137 "preventDuplicates": true,
138 "onclick": null,
139 "showDuration": "300",
140 "hideDuration": "1000",
141 "timeOut": "0",
142 "extendedTimeOut": "0",
143 "showEasing": "swing",
144 "hideEasing": "linear",
145 "showMethod": "fadeIn",
146 "hideMethod": "fadeOut"
147 }
148 const urlMessage='<p class="mt-3"><a class="btn btn-primary" target="_blank" href="https://browsehappy.com/?locale=fr">#i18n{themeparisfr.toast.msg.updateBrowser}</a></p>';
149 toastr["warning"]("#i18n{themeparisfr.toast.msg.ContentBrowser}" + urlMessage, "#i18n{themeparisfr.toast.msg.titleBrowser}" + browserName + ' ' + browserVer );
150 }
151 });
152 </script>
153 </#if>
154 <#assign optJsFooter=.get_optional_template('themeparisfr_frameset_footer_js.html')>
155 <#if optJsFooter.exists><@optJsFooter.include /></#if>
156 <script src="js/site.js"></script>
157 </body>
158 </html>