Hi,
I'm having a problem where by when i type in e.g localhost/capat/tutors/forms it gives me what i want but the side menu which has the links directing to other pages isn't what is meant to be there. The link i have for all the tutor pages is showing links for students on the left hand side but all the student pages are ok as its showing the right left hand link its meant to show and for the admin page, the left hand side link is also showing the student links. I'm not sure if you understand what i'm trying to say but this is my code. I hope you will be able to help me out. thanks
class_ui.php
<?php
/**
*
* Class : UI
*
*
*/
//include main global file so that the session can be used
function & rel7($struc, &$file) {
return file_exists( ( $file = ( dirname($struc).'/'.$file ) ) );
}
function relativetome7($structure, $filetoget){
return rel7($structure,$filetoget) ? require_once($filetoget) : null;
}
relativetome7(__FILE__, 'inc_global.php');
class UI {
// Public Vars
public $page_title = '';
public $menu_selected = '';
public $breadcrumbs = null;
// Private Vars
private $_user = null;
private $_menu = null;
private $_page_bar_buttons = null;
/**
* CONSTRUCTOR for the UI
* @param string $_user
*/
function UI( $_user = null) {
$this->_user =& $_user;
// Initialise the menu - sets either staff or student menu items
if ( ($this->_user) && ($this->_user->is_staff()) ) {
// Staff menu
$this->set_menu('Tutors', array ('home' => APP__WWW . '/tutors/index.php' ,
'my forms' => APP__WWW . '/tutors/forms/' ,
'my groups' => APP__WWW . '/tutors/groups/' ,
'my assessments' => APP__WWW . '/tutors/assessments/' ,) );// /$this->set_menu()
$this->set_menu('Support', array ('contact' => APP__WWW . '/contact/') );// /$this->set_menu();
//Admin menu
if ($_SESSION['_admin'] == '1'){
$this->set_menu('Admin', array('home' => APP__WWW .'/admin/index.php',
'upload data' => APP__WWW . '/admin/load/index.php',
'review data' => APP__WWW . '/admin/review/index.php'));
}
} else {
// Student menu
$this->set_menu('Students', array ('home' => APP__WWW . '/students/index.php' ,
'my groups' => APP__WWW . '/students/groups/' ,
'my assessments' => APP__WWW . '/students/assessments/' ) );// /$this->set_menu()
$this->set_menu('Support', array ('contact' => APP__WWW . '/contact/') );// /$this->set_menu();
}
$this->set_menu(' ', array ('logout' => APP__WWW .'/logout.php') );// /$this->set_menu();
}// /->UI()
// --------------------------------------------------------------------------------
// Public Methods
/**
* Send the expiry headers.
* Leave $expiry_date empty to force the browser to page refresh
* @param string $expire_date
* @param string $modified_date
*/
function headers_expire($expire_date = null, $modified_date = null) {
// If no expiry date, expire at 00:00:01 today
if (!$expire_date) { $expire_date = mktime(0,0,1,date('m'),date('d'),date('Y')); }
// If no modified date, modified today
if (!$modified_date) { $modified_date = mktime(); }
header('Expires: '. gmdate('D, d M Y H:i:s', $expire_date ) .' GMT');
header('Last-Modified: '. gmdate('D, d M Y H:i:s', $modified_date) .' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: post-check=0, pre-check=0', false); // HTTP/1.1
header("Cache-control: private", false);
header('Pragma: no-cache'); // HTTP/1.0
} // /-headers_expire()
/**
* Function to generate the header
*/
function head () {
/*
Commented out until the day IE can show a full XHTML page without entering quirks mode
echo('<?xml version="1.0" encoding="UTF-8"?>'."\n");
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-language" content="EN" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link href="<?php echo(APP__WWW) ?>/css/capat.css" media="screen" rel="stylesheet" type="text/css" />
<link href="<?php echo(APP__WWW) ?>/css/capat_print.css" media="print" rel="stylesheet" type="text/css" />
<title><?php echo(APP__NAME ) ?></title>
<?php
} // /->head()
/**
* function to close the body area of the page
* @param string $extra_attributes
*/
function body($extra_attributes = '') {
echo("\n</head>\n<body $extra_attributes>\n\n");
} // /->body()
/**
* render page header
*/
function header() {
?>
<div id="header">
<div id="app_bar">
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="175"><div id="title_logo"><a href=""><img src="<?php echo APP__WWW; ?>/images/tool/appbar_capat_logo.png" alt="<?php echo APP__NAME; ?>" /></a></div></td>
<?php
if ($this->_user) {
echo("<td>{$this->_user->forename} {$this->_user->surname}</td>");
} else {
echo('<td> </td>');
}
?>
</tr>
</table>
</div>
<div id="breadcrumb_bar">
You are in: <?php
if (is_array($this->breadcrumbs)) {
$num_crumbs = count($this->breadcrumbs);
foreach( $this->breadcrumbs as $k => $v ) {
--$num_crumbs;
if (!is_null($v)) {
echo("<a class=\"breadcrumb\" href=\"$v\">$k</a>");
if ($num_crumbs>0) { echo(' > '); }
} else { echo($k); }
}
}
?>
</div>
</div>
<?php
}// /->header()
/**
* Set the given section name to the given assoc-array of links
* Does NO checking of $section_array
* @param string $section_name
* @param array $section_array
*/
function set_menu($section_name, $section_array) {
$this->_menu["$section_name"] = $section_array;
}
/**
* Draw the menu
*/
function menu() {
// If there's a menu, draw it
if ($this->_menu) {
$menu_html = '<div id="menu">';
foreach($this->_menu as $menu_section => $menu_links) {
$menu_html .= ($menu_section==' ') ? '<div class="menu_section"><ul class="menu_list">' : '<div class="menu_section"><div class="menu_title">'. $menu_section .'</div><ul class="menu_list">';
foreach($menu_links as $menu_name => $menu_link ) {
$link_class = ($this->menu_selected == $menu_name) ? 'menu_selected' : 'menu';
$menu_html .= '<li><a class="'. $link_class .'" href="'. $menu_link .'">'. $menu_name .'</a></li>';
}// /for
$menu_html .= '</ul></div>';
}// /for
$menu_html .= '</div>';
echo($menu_html);
}
}// /->menu()
/**
* Set a page bar button
* @param string $text
* @param string $img
* @param string $link
* @param string $side
*/
function set_page_bar_button($text, $img, $link, $side = 'left') {
$this->_page_bar_buttons[$side][$text] = array ('img' => "../images/buttons/$img", 'link' => $link);
}// /->set_page_bar_button()
/**
* Draw the page toolbar
*/
function page_bar() {
if (is_array($this->_page_bar_buttons)) {
?>
<div id="page_bar">
<table cellpadding="0" cellspacing="0">
<tr>
<?php
if (array_key_exists('left',$this->_page_bar_buttons)) {
foreach($this->_page_bar_buttons['left'] as $text => $button) {
echo("<td><a class=\"page_bar_link\" href=\"{$button['link']}\" title=\"$text\"><img src=\"{$button['img']}\" alt=\"$text\" height=\"50\" /></a></td>");
}
}
?>
<td width="100%"> </td>
<?php
// right-hand buttons are automatically set to target="_blank"
if (array_key_exists('right',$this->_page_bar_buttons)) {
foreach($this->_page_bar_buttons['right'] as $text => $button) {
echo("<td><a class=\"page_bar_link\" href=\"{$button['link']}\" target=\"$text\" title=\"$text\"><img src=\"{$button['img']}\" alt=\"$text\" height=\"50\" /></a></td>");
}
}
?>
</tr>
</table>
</div>
<?php
}
}// /->page_bar()
/**
* Footer
*/
function footer() {
?>
<div id="footer">
<div style="float: right;">
</div>
<iframe src="/keep_alive.php" height="1" width="1" style="display: none;">keep alive</iframe>
</div>
<?php
}// /->footer()
/**
* Start main page content
*/
function content_start() {
echo('<div id="main">');
$this->page_bar();
echo('<div id="content">');
if ($this->page_title) { echo("<h1>{$this->page_title}</h1>\n\n"); }
}// /content_start()
/**
* End main page content
* @param boolean $render_menu
* @param boolean $render_header
* @param boolean $renders_footer
*/
function content_end($render_menu = true, $render_header = true, $render_footer = true) {
?>
</div>
</div>
<div id="side_bar">
<?php
if ($render_menu) {
$this->menu();
?>
<?php
} else {
?>
<?php
}
?>
</div>
<?php
if ($render_header) { $this->header(); }
if ($render_footer) { $this->footer(); }
?>
</body>
</html>
<?php
}// /content_end()
/**
* function to draw the boxed list
* @param string $list
* @param string $box_class
* @param string $header_text
* @param string $footer_text
*/
function draw_boxed_list($list, $box_class, $header_text, $footer_text) {
if (is_array($list)) {
echo("<div class=\"$box_class\"><p style=\"font-weight: bold;\">$header_text</p><ul class=\"spaced\">");
foreach($list as $item) { echo("<li>$item</li>"); }
echo("</ul><p>$footer_text</p></div>");
}
}// ->draw_boxed_list()
// --------------------------------------------------------------------------------
// Private Methods
}// /class: UI
?>
?>