Ajout du slot « body » en alias à « main_no_tabs » car il est utile pour afficher...
[Plinn.git] / skins / custom_generic / main_template_standard.pt
1 <metal:block define-macro="master">
2 <tal:block define="global main_macros here/main_template_macros/macros"/>
3 <metal:block use-macro="main_macros/global_defines"/>
4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
6 <html xmlns="http://www.w3.org/1999/xhtml">
7
8 <head>
9 <title tal:content="here/expanded_title">Title goes here</title>
10 <meta http-equiv="content-type" content="text/html;charset=utf-8" />
11 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
12 <meta name="description" tal:attributes="content portal_object/description" />
13 <meta name="keywords"
14 tal:condition="exists:portal_object/keywords"
15 tal:attributes="content python:', '.join(portal_object.getProperty('keywords', []))" />
16 <base tal:omit-tag="" metal:define-slot="base" />
17
18 <link rel="Shortcut Icon" type="image/x-icon" href="favicon.ico" tal:attributes="href string:$portal_url/favicon.ico" />
19 <link rel="alternate" type="application/rss+xml"
20 tal:define="stool nocall:here/portal_syndication"
21 tal:attributes="title here/title_or_id ; href string:${here/absolute_url}/RSS"
22 tal:condition="python:stool.isSyndicationAllowed(here)" />
23
24 <link rel="stylesheet" media="screen" tal:attributes="href here/global_plinn_style.css/absolute_url" />
25 <style type="text/css" media="all" tal:content="string:@import url(${here/calendar-system.css/absolute_url});"></style>
26
27 <link metal:define-slot="css_slot" tal:replace="nothing" />
28 <script type="text/javascript" tal:attributes="src here/epoz_script_detect.js/absolute_url"></script>
29 <script type="text/javascript" tal:attributes="src here/javascript_events_api.js/absolute_url"></script>
30 <script type="text/javascript" tal:attributes="src here/sarissa.js/absolute_url"></script>
31 <script type="text/javascript">
32 //<!--
33 function absolute_url() {
34 var e = document.getElementById("Object_URL");
35 if (e)
36 return e.innerHTML;
37 else {
38 e = document.getElementById("BC_Object_URL");
39 if (e)
40 return e.innerHTML;
41 else
42 return document.location.href;
43 }
44 }
45
46 function portal_url() {
47 var e = document.getElementById("Portal_URL");
48 return e.innerHTML;
49 }
50
51 var startupFunctions = new Array();
52
53 function registerStartupFunction(fct) {
54 startupFunctions.push(fct);
55 }
56
57 function runAjaxStartup() {
58 for (var i = 0 ; i < startupFunctions.length ; i++)
59 startupFunctions[i]();
60 }
61
62 addListener(window, 'load', runAjaxStartup);
63
64 var progressImage;
65 function _initLoadingStatus() {
66 progressImage = document.getElementById('loading_progress');
67 }
68 registerStartupFunction(_initLoadingStatus);
69
70 function showProgressImage() { progressImage.style.display = 'inline'; }
71 function hideProgressImage() { progressImage.style.display = 'none'; }
72
73
74 // -->
75 </script>
76 <script type="text/javascript" tal:attributes="src here/base_properties.js/absolute_url"></script>
77 <script type="text/javascript" tal:attributes="src here/fragment_importer.js/absolute_url"></script>
78 <script type="text/javascript" tal:attributes="src here/ajax_form_manager.js/absolute_url"></script>
79 <script type="text/javascript" tal:attributes="src here/root_handlers.js/absolute_url"></script>
80 <script type="text/javascript" tal:attributes="src here/plinn_script_loader.js/absolute_url"></script>
81
82 <script type="text/javascript" metal:define-slot="javascript_head_slot" tal:replace="nothing"></script>
83 </head>
84
85 <body>
86 <span style="display:none">
87 <span id="Portal_URL" tal:content="portal_url"></span>
88 <span id="ajax_config" tal:content="python:request.get('ajaxConfig', request.SESSION.get('ajaxConfig', portal_object.getProperty('ajax_config')))"></span>
89 <script type="text/javascript">
90 // <!--
91 AJAX_CONFIG = document.getElementById('ajax_config');
92 AJAX_CONFIG = parseInt(AJAX_CONFIG.innerHTML);
93 // -->
94 </script>
95 </span>
96 <a href="#documentContent" i18n:translate="" i18n:domain="plinn" class="hidden">Skip to content</a>
97 <div metal:use-macro="main_macros/top_bar">Top bar</div>
98 <div metal:use-macro="main_macros/user_menu_bar">User menu bar</div>
99 <div id="Breadcrumbs"><div metal:use-macro="main_macros/Breadcrumbs">Breadcrumbs</div></div>
100
101 <div id="main_body">
102 <table id="Forematter" width="100%" cellspacing="0">
103 <tr>
104 <td id="leftCell" class="boxes_container" width="15%">
105 <span metal:use-macro="main_macros/leftCell">Left cell</span>
106 </td>
107
108 <td id="mainCell" width="70%">
109
110 <div id="DesktopStatusBar" tal:condition="request/portal_status_message|nothing">
111 <img src="info.gif" alt="Information" tal:attributes="src here/info.gif/absolute_url" i18n:attributes="alt" />
112 <span tal:content="request/portal_status_message" i18n:translate="">Status message.</span>
113 </div>
114
115 <a name="documentContent"></a>
116 <div metal:define-slot="body" tal:omit-tag="">
117 <div metal:define-slot="main_no_tabs" tal:omit-tag="">
118 <div tal:condition="specialCtxHeader" tal:content="structure specialCtxHeader">special context header</div>
119 <div id="ContentTabs" tal:condition="not:specialCtxHeader">
120 <div class="tabs" metal:use-macro="here/tabs/macros/tabs">Content tabs</div>
121 <div metal:use-macro="here/tabs/macros/additional_tabs">Additional tabs</div>
122 </div>
123 <div id="ForematterCell">
124 <div class="header">
125 <div tal:omit-tag="" metal:define-slot="header">
126 <h1 id="DesktopTitle">
127 <span tal:replace="here/title_or_id">Page Title</span>
128 </h1>
129 <div id="DesktopDescription" tal:content="structure here/Description">
130 Description of the resource goes here, perhaps even wrapping lines; this is to make it long enough to test.
131 </div>
132 </div>
133 </div>
134
135 <div id="Desktop">
136 <div metal:define-slot="main">
137 <h2>Section Header</h2>
138 <p>The content of the object is <a href=".">rendered</a>
139 hre. Lorem ipsum dolorem. Nihil obstat imprimatur. Semper ubi sub ubi.
140 Non illegitimi carborundum. In vino veritas. E pluribus unam.
141 </p>
142 </div>
143 </div>
144 <div tal:condition="not:isAnon" tal:omit-tag="">
145 <div id="ContentByLine" metal:use-macro="here/content_byline/macros/byline">
146 Content by me
147 </div>
148 </div>
149 <div metal:define-slot="footer" tal:replace="nothing">footer slot</div>
150 </div>
151 </div>
152 </div>
153 </td>
154 <!-- end_main_column -->
155
156 <td id="rightCell" class="boxes_container" width="15%">
157 <div metal:use-macro="main_macros/rightCell">Right cell</div>
158 </td>
159 </tr>
160 </table>
161 <div id="Footer" tal:content="python:getattr(portal_object, 'copyright_notice','') or '© Benoît Pin — École des mines de Paris 2006-2009'">© Benoît Pin — École des mines de Paris 2006-2009</div>
162 </div>
163 <div metal:use-macro="here/widgets/macros/debug">
164 DEBUG Information
165 </div>
166 </body>
167
168 </html>
169
170 </metal:block>