2 /************************************************************************/
4 /************************************************************************/
5 /* Copyright (c) 2002-2008 by Greg Gay, Joel Kronenberg & Heidi Hazelton*/
6 /* Adaptive Technology Resource Centre / University of Toronto */
9 /* This program is free software. You can redistribute it and/or */
10 /* modify it under the terms of the GNU General Public License */
11 /* as published by the Free Software Foundation. */
12 /************************************************************************/
13 // $Id: header.tmpl.php 3825 2005-03-11 15:35:51 joel $
14 if (!defined('AT_INCLUDE_PATH')) { exit; }
15 /* available header.tmpl.php variables:
16 * $this->lang_code the ISO language code
17 * SITE_NAME the site name from the config file
18 * $this->page_title the name of this page to use in the <title>
19 * $this->lang_charset the ISO language character set
20 * $this->content_base_href the <base href> to use for this page
21 * $this->base_path the absolute path to this atutor installation
22 * $this->rtl_css if set, the path to the RTL style sheet
23 * $this->icon the path to a course icon
24 * $this->banner_style -deprecated-
25 * $this->theme the directory name of the current theme
26 * $this->base_href the full url to this atutor installation
27 * $this->onload javascript onload() calls
28 * $this->img the absolute path to this theme's images/ directory
29 * $this->sequence_links associative array of 'previous', 'next', and/or 'resume' links
30 * $this->path associative array of path to this page: aka bread crumbs
31 * $this->rel_url the relative url from the installation root to this page
32 * $this->nav_courses associative array of this user's enrolled courses
33 * $this->section_title the title of this section (course, public, admin, my start page)
34 * $this->top_level_pages associative array of the top level navigation
35 * $this->current_top_level_page the full path to the current top level page with file name
36 * $this->sub_level_pages associate array of sub level navigation
37 * $this->back_to_page if set, the path and file name to the part of this page (if parent is not a top level nav)
38 * $this->current_sub_level_page the full path to the current sub level page with file name
39 * $this->guide the full path and file name to the guide page
40 * ======================================
41 * top_level_pages array(array('url', 'title')) the top level pages. ATutor default creates tabs.
42 * section_title string the name of the current section. either name of the course, administration, my start page, etc.
43 * page_title string the title of the current page.
44 * path array(array('url', 'title')) the path to the current page.
45 * back_to_page array('url', 'title') the link back to the part of the current page, if needed.
46 * current_top_level_page string full url to the current top level page in "top_leve_pages"
47 * current_sub_level_page string full url to the current sub level page in the "sub_level_pages"
48 * sub_level_pages array(array('url', 'title')) the sub level pages.
51 // will have to be moved to the header.inc.php
52 global $system_courses, $_custom_css, $db, $_base_path;
54 ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
56 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="<?php echo $this->lang_code; ?>">
59 <title><?php echo SITE_NAME; ?> : <?php echo $this->page_title; ?></title>
60 <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $this->lang_charset; ?>" />
61 <meta name="Generator" content="ATutor - Copyright 2005 by http://atutor.ca" />
62 <base href="<?php echo $this->content_base_href; ?>" />
63 <link rel="shortcut icon" href="<?php echo $this->base_path; ?>favicon.ico" type="image/x-icon" />
64 <link rel="stylesheet" href="<?php echo $this->base_path.'themes/'.$this->theme; ?>/print.css" type="text/css" media="print" />
65 <link rel="stylesheet" href="<?php echo $this->base_path.'themes/'.$this->theme; ?>/styles.css" type="text/css" />
67 <link rel="stylesheet" href="<?php echo $this->base_path.'themes/'.$this->theme; ?>/ie_styles.css" type="text/css" />
69 <link rel="stylesheet" href="<?php echo $this->base_path.'themes/'.$this->theme; ?>/forms.css" type="text/css" />
70 <link rel="stylesheet" type="text/css" href="<?php echo $this->base_path; ?>infusion/framework/fss/css/fss-layout.css" />
71 <link rel="stylesheet" type="text/css" href="<?php echo $this->base_path; ?>infusion/components/reorderer/Reorderer.css" />
72 <?php echo $this->rtl_css; ?>
73 <?php if ($system_courses[$this->course_id]['rss']): ?>
74 <link rel="alternate" type="application/rss+xml" title="<?php echo SITE_NAME; ?> - RSS 2.0" href="<?php echo $this->base_href; ?>get_rss.php?<?php echo $this->course_id; ?>-2" />
75 <link rel="alternate" type="application/rss+xml" title="<?php echo SITE_NAME; ?> - RSS 1.0" href="<?php echo $this->base_href; ?>get_rss.php?<?php echo $this->course_id; ?>-1" />
77 <script type="text/javascript" src="<?php echo $this->base_path; ?>jscripts/infusion/InfusionAll.js"></script>
78 <script src="<?php echo $this->base_path; ?>jscripts/infusion/jquery.autoHeight.js" type="text/javascript"></script>
79 <?php echo $this->custom_css; ?>
82 <body onload="<?php echo $this->onload; ?>">
84 <script language="javascript" type="text/javascript">
86 jQuery(document).ready(function () {
87 // only specific list items are sortable
88 var reorder_example_list = fluid.reorderList('#contentwrapper', {
90 movables : '.orderable',
91 selectables: '.orderable',
92 dropTargets: '.orderable',
95 orientation: fluid.orientation.HORIZONTAL,
97 afterMove: function (item, requestedPosition, movables) {
98 //save the state to the db
99 var myDivs = jQuery ("div[class^=orderable]", "#contentwrapper");
100 jQuery.post("<?php echo AT_BASE_HREF; ?>themes/fluid/save_state.php", { 'left':myDivs[0].id }, function(data) {});
107 function poptastic(url) {
108 newwindow=window.open(url,'popup','height=600,width=600,scrollbars=yes,resizable=yes');
109 if (window.focus) {newwindow.focus()}
112 function getexpirydate(nodays){
115 nomilli=Date.parse(Today);
116 Today.setTime(nomilli+nodays*24*60*60*1000);
117 UTCstring = Today.toUTCString();
121 function setcookie(name,value,duration){
122 cookiestring=name+"="+escape(value)+";path=/;expires="+getexpirydate(duration);
123 document.cookie=cookiestring;
124 if(!getcookie(name)){
131 function getcookie(cookiename) {
132 var cookiestring=""+document.cookie;
133 var index1=cookiestring.indexOf(cookiename);
134 if (index1==-1 || cookiename=="") return "";
135 var index2=cookiestring.indexOf(';',index1);
136 if (index2==-1) index2=cookiestring.length;
137 return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
140 function setDisplay(objId) {
141 var toc = document.getElementById(objId);
143 var state = getcookie(objId);
144 if (document.getElementById(objId) && state && (state == 'none')) {
150 function setstates() {
152 var objId = "side-menu";
153 var state = getcookie(objId);
154 if (document.getElementById(objId) && state && (state == 'none')) {
158 var objId = "toccontent";
159 var state = getcookie(objId);
160 if (document.getElementById(objId) && state && (state == 'none')) {
166 function showTocToggle(objId, show, hide, key, selected) {
167 if(document.getElementById) {
169 var accesskey = " accesskey='" + key + "' title='"+ show + "/" + hide + " Alt - "+ key +"'";
174 if (selected == 'hide') {
175 document.writeln('<a href="javascript:toggleToc(\'' + objId + '\')" ' + accesskey + '>' +
176 '<span id="' + objId + 'showlink" style="display:none;">' + show + '</span>' +
177 '<span id="' + objId + 'hidelink">' + hide + '</span>' + '</a>');
179 document.writeln('<a href="javascript:toggleToc(\'' + objId + '\')" ' + accesskey + '>' +
180 '<span id="' + objId + 'showlink">' + show + '</span>' +
181 '<span id="' + objId + 'hidelink" style="display:none;">' + hide + '</span>' + '</a>');
186 function toggleToc(objId) {
187 var toc = document.getElementById(objId);
191 var showlink=document.getElementById(objId + 'showlink');
192 var hidelink=document.getElementById(objId + 'hidelink');
193 if (hidelink.style.display == 'none') {
194 document.getElementById('contentcolumn').id="contentcolumn_shiftright";
195 toc.style.display = '';
196 hidelink.style.display='';
197 showlink.style.display='none';
199 document.getElementById('contentcolumn_shiftright').id="contentcolumn";
200 toc.style.display = 'none';
201 hidelink.style.display='none';
202 showlink.style.display='';
204 setcookie(objId, toc.style.display, 1);
207 function getcookie(cookiename) {
208 var cookiestring=""+document.cookie;
209 var index1=cookiestring.indexOf(cookiename);
210 if (index1==-1 || cookiename=="") return "";
211 var index2=cookiestring.indexOf(';',index1);
212 if (index2==-1) index2=cookiestring.length;
213 return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
216 //toggle content folder in side menu "content navigation"
217 function toggleFolder(cid)
219 if (jQuery("#tree_icon"+cid).attr("src") == tree_collapse_icon) {
220 jQuery("#tree_icon"+cid).attr("src", tree_expand_icon);
221 jQuery("#tree_icon"+cid).attr("alt", "<?php echo _AT('expand'); ?>");
222 setcookie("c<?php echo $this->course_id;?>_"+cid, null, 1);
225 jQuery("#tree_icon"+cid).attr("src", tree_collapse_icon);
226 jQuery("#tree_icon"+cid).attr("alt", "<?php echo _AT('collapse'); ?>");
227 setcookie("c<?php echo $this->course_id;?>_"+cid, "1", 1);
230 jQuery("#folder"+cid).slideToggle();
233 // toggle elements in side menu
234 function elementToggle(elem, title)
236 element_collapse_icon = "<?php echo $_base_path; ?>images/mswitch_minus.gif";
237 element_expand_icon = "<?php echo $_base_path; ?>images/mswitch_plus.gif";
239 if (jQuery(elem).attr("src") == element_collapse_icon) {
240 jQuery(elem).attr("src", element_expand_icon);
241 jQuery(elem).attr("alt", "<?php echo _AT('show'). ' '; ?>"+ title);
242 jQuery(elem).attr("title", "<?php echo _AT('show'). ' '; ?>"+ title);
243 setcookie("m_"+title, 0, 1);
246 jQuery(elem).attr("src", element_collapse_icon);
247 jQuery(elem).attr("alt", "<?php echo _AT('collapse'); ?>");
248 jQuery(elem).attr("alt", "<?php echo _AT('hide'). ' '; ?>"+ title);
249 jQuery(elem).attr("title", "<?php echo _AT('hide'). ' '; ?>"+ title);
250 setcookie("m_"+title, null, 1);;
253 jQuery(elem).parent().next().slideToggle();
256 function printSubmenuHeader(title)
258 if (getcookie("m_"+title) == "0")
260 image = "<?php echo $_base_path?>images/mswitch_plus.gif";
261 alt_text = "<?php echo _AT('show'); ?>" + title;
265 image = "<?php echo $_base_path?>images/mswitch_minus.gif";
266 alt_text = "<?php echo _AT('hide'); ?>" + title;
269 document.writeln('<h4 class="box">'+
270 ' <input src="'+image+'"' +
271 ' onclick="elementToggle(this, \''+title+'\'); return false;"' +
272 ' alt="'+ alt_text + '" ' +
273 ' title="'+ alt_text + '"' +
274 ' style="float:right" type="image" />'+ title +
280 <div id="top-links"> <!-- top help/search/login links -->
281 <a href="<?php echo htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES); ?>#content" accesskey="c">
282 <img src="<?php echo $this->base_path; ?>images/clr.gif" height="1" width="1" border="0" alt="<?php echo _AT('goto_content'); ?> ALT+c" /></a>
284 <a href="<?php echo htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES); ?>#menu" accesskey="m"><img src="<?php echo $this->base_path; ?>images/clr.gif" height="1" width="1" border="0" alt="<?php echo _AT('goto_menu'); ?> ALT+m" /></a>
285 <?php if (isset($_SESSION['member_id']) && $_SESSION['member_id']): ?>
286 <!-- start the jump menu -->
287 <?php if (empty($_GET)): ?>
288 <form method="post" action="<?php echo $this->base_path; ?>bounce.php?p=<?php echo urlencode($this->rel_url); ?>" target="_top">
290 <form method="post" action="<?php echo $this->base_path; ?>bounce.php" target="_top">
292 <label for="jumpmenu" accesskey="j"></label>
293 <select name="course" id="jumpmenu" title="<?php echo _AT('jump'); ?>: Alt-j">
294 <option value="0"><?php echo _AT('my_start_page'); ?></option>
295 <optgroup label="<?php echo _AT('courses_below'); ?>">
296 <?php foreach ($this->nav_courses as $this_course_id => $this_course_title): ?>
297 <option value="<?php echo $this_course_id; ?>"><?php echo $this_course_title; ?></option>
300 </select> <input type="submit" name="jump" value="<?php echo _AT('jump'); ?>" class="button" /> </form>
301 <!-- /end the jump menu -->
302 <?php if ($_SESSION['is_super_admin']): ?>
303 <a href="<?php echo $this->base_path; ?>bounce.php?admin"><?php echo _AT('return_to_admin_area'); ?></a> |
306 <?php if ($this->course_id > -1): ?>
307 <?php if (get_num_new_messages()): ?>
308 <a href="<?php echo $this->base_path; ?>inbox/index.php"><?php echo _AT('inbox'); ?> (<?php echo get_num_new_messages(); ?>)</a>
310 <a href="<?php echo $this->base_path; ?>inbox/index.php"><?php echo _AT('inbox'); ?></a>
314 <a href="<?php echo $this->base_path; ?>search.php"><?php echo _AT('search'); ?></a> <a href="<?php echo $this->base_path; ?>help/index.php"><?php echo _AT('help'); ?></a>
319 // If there is a custom course banner in the file manager called banner.html, display it here
320 @readfile(AT_CONTENT_DIR . $this->course_id.'/banner.txt');
323 and example banner.html file might look like:
324 <div style="width: 760px; height: 42px; background: white;"><img src="http://[mysite]/atutor15rc3/banners/kart-camb.jpg"></div>
329 <?php if (!empty($this->icon)) { // if a course icon is available, display it here. ?>
330 <a href="<?php echo $this->base_path; ?>index.php"><img src="<?php echo $this->icon; ?>" class="headicon" alt="<?php echo _AT('home'); ?>" /></a>
333 <h1 id="section-title">
334 <?php if ($_SESSION['valid_user']):
335 echo '<span style="color:black;font-size:small;font-weight:bold;">'.stripslashes(SITE_NAME).'</span><br />';
337 <?php echo $this->section_title; ?>
338 <?php if (($this->course_id > 0) && ($_SESSION['enroll'] == AT_ENROLL_NO)) : ?>
339 - <small><a href="<?php echo $this->base_path; ?>enroll.php?course=<?php echo $this->course_id; ?>"><?php echo _AT('enroll_me'); ?></a></small>
346 <div id="topnavlistcontainer">
347 <!-- the main navigation. in our case, tabs -->
349 <?php foreach ($this->top_level_pages as $page): ?>
350 <?php ++$accesscounter; $accesscounter = ($accesscounter == 10 ? 0 : $accesscounter); ?>
351 <?php $accesskey_text = ($accesscounter < 10 ? 'accesskey="'.$accesscounter.'"' : ''); ?>
352 <?php $accesskey_title = ($accesscounter < 10 ? ' Alt+'.$accesscounter : ''); ?>
353 <?php if ($page['url'] == $this->current_top_level_page): ?>
354 <li><a href="<?php echo $page['url']; ?>" <?php echo $accesskey_text; ?> title="<?php echo $page['title'] . $accesskey_title; ?>" class="active"><?php echo $page['title']; ?></a></li>
356 <li><a href="<?php echo $page['url']; ?>" <?php echo $accesskey_text; ?> title="<?php echo $page['title'] . $accesskey_title; ?>"><?php echo $page['title']; ?></a></li>
358 <?php $accesscounter = ($accesscounter == 0 ? 11 : $accesscounter); ?>
364 <!-- the sub navigation -->
365 <div style="float: right; text-transform: lowercase;">
366 <?php if ($_SESSION['valid_user']): ?>
367 <strong><?php echo get_display_name($_SESSION['member_id']); ?></strong> | <a href="<?php echo $this->base_path; ?>logout.php"><?php echo _AT('logout'); ?></a>
369 <a href="<?php echo $this->base_path; ?>login.php?course=<?php echo $this->course_id; ?>"><?php echo _AT('login'); ?></a> | <a href="<?php echo $this->base_path; ?>registration.php"><?php echo _AT('register'); ?></a>
373 <?php if ($this->sub_level_pages): ?>
374 <?php if (isset($this->back_to_page)): ?>
375 <a href="<?php echo $this->back_to_page['url']; ?>" id="back-to"><?php echo _AT('back_to').' '.$this->back_to_page['title']; ?></a> |
378 <?php $num_pages = count($this->sub_level_pages); ?>
379 <?php for ($i=0; $i<$num_pages; $i++): ?>
380 <?php if ($this->sub_level_pages[$i]['url'] == $this->current_sub_level_page): ?>
381 <strong><?php echo $this->sub_level_pages[$i]['title']; ?></strong>
383 <a href="<?php echo $this->sub_level_pages[$i]['url']; ?>"><?php echo $this->sub_level_pages[$i]['title']; ?></a>
385 <?php if ($i < $num_pages-1): ?>
390 <div id="sub-navigation">
396 <div id="contentwrapper" class="fluid-horizontal-order">
397 <?php if (($this->course_id > 0) && $system_courses[$this->course_id]['side_menu'] && ($_SESSION['prefs']['PREF_MENU']!="right")): ?>
398 <div id="side-menu" class="orderable" style="display:inline; float:left">
399 <div class="grab"><img src="<?php echo $this->img; ?>layers.png" alt="<?php echo _AT('drag'); ?>" /></div>
400 <?php require(AT_INCLUDE_PATH.'side_menu.inc.php'); ?>
404 <div class="orderable" style="display:inline; float:left; margin-left: 10px; margin-right: 10px; <?php if (($this->course_id <= 0) && !$this->side_menu) { ?> width:99%; <?php } else { ?> width:76.5%; <?php } ?>">
407 <div><img src="<?php echo $this->img; ?>layers.png" style="float:left;margin:3px;" alt="<?php echo _AT('drag'); ?>" /></div>
408 <?php if ($this->guide && ($_SESSION["prefs"]["PREF_SHOW_GUIDE"] || $_SESSION["course_id"] == "-1")): ?>
409 <a href="<?php echo $this->guide; ?>" id="guide" onclick="poptastic('<?php echo $this->guide; ?>'); return false;" target="_new"><em><?php echo $this->page_title; ?></em></a>
411 <?php if ($_SESSION["prefs"]["PREF_SHOW_BREAD_CRUMBS"]) { ?>
412 <div id="breadcrumbs">
413 <?php foreach ($this->path as $page): ?>
414 <a href="<?php echo $page['url']; ?>"><?php echo htmlspecialchars($page['title'], ENT_COMPAT, "UTF-8"); ?></a> >
415 <?php endforeach; ?> <?php echo $this->page_title; ?>
420 <?php if ($this->course_id > 0): ?>
422 <div id="sequence-links">
423 <?php if ($_SESSION["prefs"]["PREF_SHOW_NEXT_PREVIOUS_BUTTONS"]) { ?>
424 <?php if ($this->sequence_links['resume']): ?>
425 <a style="color:white;" href="<?php echo $this->sequence_links['resume']['url']; ?>" accesskey="."><img src="<?php echo $this->img; ?>resume.gif" border="0" title="<?php echo _AT('resume').': '.$this->sequence_links['resume']['title']; ?> Alt+." alt="<?php echo $this->sequence_links['resume']['title']; ?> Alt+." class="img-size-ascdesc" /></a>
427 if ($this->sequence_links['previous']): ?>
428 <a href="<?php echo $this->sequence_links['previous']['url']; ?>" title="<?php echo _AT('previous_topic').': '. $this->sequence_links['previous']['title']; ?> Alt+," accesskey=","><img src="<?php echo $this->img; ?>previous.gif" border="0" alt="<?php echo _AT('previous_topic').': '. $this->sequence_links['previous']['title']; ?> Alt+," class="img-size-ascdesc" /></a>
430 if ($this->sequence_links['next']): ?>
431 <a href="<?php echo $this->sequence_links['next']['url']; ?>" title="<?php echo _AT('next_topic').': '.$this->sequence_links['next']['title']; ?> Alt+." accesskey="."><img src="<?php echo $this->img; ?>next.gif" border="0" alt="<?php echo _AT('next_topic').': '.$this->sequence_links['next']['title']; ?> Alt+." class="img-size-ascdesc" /></a>
439 <!-- the page title -->
440 <h2 class="page-title"><?php echo $this->page_title; ?></h2>
442 <a name="content"></a>
443 <?php global $msg; $msg->printAll(); ?>