Strip pour éviter que le firstChild soit un nœud text.
[Plinn.git] / skins / photo_theme / 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 name="description"
12 tal:attributes="content python:here.Description().strip() or portal_object.description" />
13 <meta name="keywords"
14 tal:define="keywords python:here.Subject() or portal_object.keywords or []"
15 tal:attributes="content python:', '.join(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 id="search_bar">
99 <div metal:use-macro="here/realis_main_macros/macros/search_bar">Barre de recherche réalis</div>
100 </div>
101 <div id="Breadcrumbs"><div metal:use-macro="main_macros/Breadcrumbs">Breadcrumbs</div></div>
102
103 <div id="main_body">
104 <table id="Forematter" width="100%" cellspacing="0">
105 <tr>
106 <td class="boxes_container" width="15%" tal:condition="python:member.has_role(['photographe', 'Manager'])">
107 <div id="leftCell">
108 <span metal:use-macro="main_macros/leftCell">Left cell</span>
109 </div>
110 <div id="rightCell">
111 <span metal:use-macro="main_macros/rightCell">Right cell</span>
112 </div>
113 </td>
114
115 <td id="mainCell" width="85%">
116
117 <div class="DesktopStatusBar" tal:condition="request/portal_status_message|nothing">
118 <img src="info.gif" alt="Information" tal:attributes="src here/info.gif/absolute_url" i18n:attributes="alt" />
119 <span tal:content="request/portal_status_message" i18n:translate="">Status message.</span>
120 </div>
121
122 <a name="documentContent"></a>
123 <div metal:define-slot="main_no_tabs" tal:omit-tag="">
124 <div tal:condition="specialCtxHeader" tal:content="structure specialCtxHeader">special context header</div>
125 <div id="ContentTabs" tal:condition="not:specialCtxHeader">
126 <div class="tabs" metal:use-macro="here/tabs/macros/tabs">Content tabs</div>
127 <div metal:use-macro="here/tabs/macros/additional_tabs">Additional tabs</div>
128 </div>
129 <div id="ForematterCell">
130 <div class="header">
131 <div tal:omit-tag="" metal:define-slot="header">
132 <h1 id="DesktopTitle">
133 <span tal:replace="here/title_or_id">Page Title</span>
134 </h1>
135 <div id="DesktopDescription" tal:content="structure here/Description">
136 Description of the resource goes here, perhaps even wrapping lines; this is to make it long enough to test.
137 </div>
138 </div>
139 </div>
140
141 <div id="Desktop">
142 <div metal:define-slot="main">
143 <h2>Section Header</h2>
144 <p>The content of the object is <a href=".">rendered</a>
145 hre. Lorem ipsum dolorem. Nihil obstat imprimatur. Semper ubi sub ubi.
146 Non illegitimi carborundum. In vino veritas. E pluribus unam.
147 </p>
148 </div>
149 </div>
150 <div tal:condition="not:isAnon" tal:omit-tag="">
151 <div id="ContentByLine" metal:use-macro="here/content_byline/macros/byline">
152 Content by me
153 </div>
154 </div>
155 <div metal:define-slot="footer" tal:replace="nothing">footer slot</div>
156 </div>
157 </div>
158
159 </td>
160 <!-- end_main_column -->
161 </tr>
162 </table>
163 </div>
164 </body>
165
166 </html>
167
168 </metal:block>