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">
6 <html xmlns="http://www.w3.org/1999/xhtml">
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" />
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" />
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)" />
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>
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">
33 function absolute_url() {
34 var e = document.getElementById("Object_URL");
38 e = document.getElementById("BC_Object_URL");
42 return document.location.href;
46 function portal_url() {
47 var e = document.getElementById("Portal_URL");
51 var startupFunctions = new Array();
53 function registerStartupFunction(fct) {
54 startupFunctions.push(fct);
57 function runAjaxStartup() {
58 for (var i = 0 ; i < startupFunctions.length ; i++)
59 startupFunctions[i]();
62 addListener(window, 'load', runAjaxStartup);
65 function _initLoadingStatus() {
66 progressImage = document.getElementById('loading_progress');
68 registerStartupFunction(_initLoadingStatus);
70 function showProgressImage() { progressImage.style.display = 'inline'; }
71 function hideProgressImage() { progressImage.style.display = 'none'; }
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>
82 <script type="text/javascript" metal:define-slot="javascript_head_slot" tal:replace="nothing"></script>
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">
91 AJAX_CONFIG = document.getElementById('ajax_config');
92 AJAX_CONFIG = parseInt(AJAX_CONFIG.innerHTML);
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>
102 <table id="Forematter" width="100%" cellspacing="0">
104 <td id="leftCell" class="boxes_container" width="15%">
105 <span metal:use-macro="main_macros/leftCell">Left cell</span>
108 <td id="mainCell" width="70%">
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>
115 <a name="documentContent"></a>
116 <div metal:define-slot="main_no_tabs" tal:omit-tag="">
117 <div tal:condition="specialCtxHeader" tal:content="structure specialCtxHeader">special context header</div>
118 <div id="ContentTabs" tal:condition="not:specialCtxHeader">
119 <div class="tabs" metal:use-macro="here/tabs/macros/tabs">Content tabs</div>
120 <div metal:use-macro="here/tabs/macros/additional_tabs">Additional tabs</div>
122 <div id="ForematterCell">
124 <div tal:omit-tag="" metal:define-slot="header">
125 <h1 id="DesktopTitle">
126 <span tal:replace="here/title_or_id">Page Title</span>
128 <div id="DesktopDescription" tal:content="structure here/Description">
129 Description of the resource goes here, perhaps even wrapping lines; this is to make it long enough to test.
135 <div metal:define-slot="main">
136 <h2>Section Header</h2>
137 <p>The content of the object is <a href=".">rendered</a>
138 hre. Lorem ipsum dolorem. Nihil obstat imprimatur. Semper ubi sub ubi.
139 Non illegitimi carborundum. In vino veritas. E pluribus unam.
143 <div tal:condition="not:isAnon" tal:omit-tag="">
144 <div id="ContentByLine" metal:use-macro="here/content_byline/macros/byline">
148 <div metal:define-slot="footer" tal:replace="nothing">footer slot</div>
153 <!-- end_main_column -->
155 <td id="rightCell" class="boxes_container" width="15%">
156 <div metal:use-macro="main_macros/rightCell">Right cell</div>
160 <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 metal:use-macro="here/widgets/macros/debug">