This topic is locked

CSS Dynamic Menus

3/11/2007 7:19:44 AM
PHPRunner General questions
G
gdude66 author

Do you want dynamic css menus instead of the standard quick link and main menu page such as http://www.dynamicdrive.com/dynamicindex1/droptabmenu.htm with permissions?
Here's how.
Make your header page header.php as follows (all code stripped from the original menu.php page):

<?php

ini_set("display_errors","1");

ini_set("display_startup_errors","1");

set_magic_quotes_runtime(0);

$smarty = new Smarty();
$smarty->assign("username",$_SESSION["UserID"]);

$smarty->assign("not_a_guest",$_SESSION["AccessLevel"] != ACCESS_LEVEL_GUEST);

$strPerm = GetUserPermissions("student");

$smarty->assign("allow_student",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("staff");

$smarty->assign("allow_staff",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("Coordinator");

$smarty->assign("allow_Coordinator",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("reasons");

$smarty->assign("allow_reasons",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("admin action");

$smarty->assign("allow_admin_action",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("Add Incident");

$smarty->assign("allow_Add_Incident",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("staffaction");

$smarty->assign("allow_staffaction",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("student_contacts");

$smarty->assign("allow_student_contacts",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("Primary Events");

$smarty->assign("allow_Primary_Events",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("addhelpitem");

$smarty->assign("allow_addhelpitem",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("TechUpdate");

$smarty->assign("allow_TechUpdate",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("helpdesk_problem");

$smarty->assign("allow_helpdesk_problem",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("location");

$smarty->assign("allow_location",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("Home Group");

$smarty->assign("allow_Home_Group",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("hgsem1lg");

$smarty->assign("allow_hgsem1lg",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("hgsem2lg");

$smarty->assign("allow_hgsem2lg",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("Year Level");

$smarty->assign("allow_Year_Level",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));

$strPerm = GetUserPermissions("Subschool");

$smarty->assign("allow_Subschool",!(strpos($strPerm, "A")===false && strpos($strPerm, "S")===false));
$smarty->display("header.htm");



This will depend on your page names and permissions.

Then in the header.htm have the following code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML><HEAD>

<META http-equiv=Content-Type content="text/html; charset=windows-1252"><LINK

href="include/style.css" type=text/css rel=stylesheet>

<META content="MSHTML 6.00.6000.16414" name=GENERATOR></HEAD>

<BODY><BR><literal><link href="dropdowntab.css" rel="stylesheet" type="text/css" />
&lt;script type="text/javascript" src="dropdowntab.js">
/***

  • Drop Down Tab Menu- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
  • This notice MUST stay intact for legal use
  • Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code

    ***/
    </script></literal>

    <div id="shademenu" class="shadetabs">

    <ul>

    <li><a href="menu.php">Home</a></li>

    <li><a href="#" rel="dropmenu1" rev="testfield">Student Incidents</a></li>

    {if $allow_Home_Group}<li><a href="#" rel="dropmenu2">Home Group Teacher</a></li>{/if}

    {if $allow_student_contacts}<li><a href="#" rel="dropmenu3">Coordinators and Managers</a></li>{/if}

    <li><a href="#" rel="dropmenu4">Helpdesk</a></li>

    </ul>

    </div>
    <!--1st drop down menu -->

    <div id="dropmenu1" class="dropmenudiv">

    <a href="Pre_Add_Incident_list.php">Add Student Incidents</a>

    <a href="staff_list.php">Staff Contacts</a>

    <a href="student_list.php">Student List</a>

    </div>
    <!--2nd drop down menu -->

    <div id="dropmenu2" class="dropmenudiv">

    <a href="Pre_Home_Group_list.php">Home Group Teacher Incidents</a>

    <a href="Pre_hgsem1lg_list.php">Learning Goals Semester 1</a>

    <a href="Pre_hgsem2lg_list.php">Learning Goals Semester 2</a>

    {if $allow_student_contacts}<a href="student_list.php">Student List</a>{/if}

    </div>
    <!--3rd drop down menu -->

    <div id="dropmenu3" class="dropmenudiv">

    {if $allow_Year_Level}<a href="Pre_Year_Level_list.php">Year Level Coordinator</a>{/if}

    {if $allow_Subschool}<a href="Pre_Subschool_list.php">Subschool Manager</a>{/if}

    {if $allow_Coordinator}<a href="Coordinator_list.php">Principal / AP</a>{/if}

    {if $allow_student_contacts}<a href="student_contacts_list.php">Student Contacts</a>{/if}

    {if $allow_reasons}<a href="reasons_list.php">Type of Behaviour List</a>{/if}

    {if $allow_staffaction}<a href="staffaction_list.php">Staff Actions List</a>{/if}

    {if $allow_admin_action}<a href="admin_action_list.php">Admin Actions List</a>{/if}

    </div>
    <!--4th drop down menu -->

    <div id="dropmenu4" class="dropmenudiv">

    <a href="Pre_addhelpitem_list.php">Add Computer Helpdesk Item</a>

    {if $allow_TechUpdate}<a href="TechUpdate_list.php">Technician Update{/if}</a>

    </div>
    <literal>&lt;script type="text/javascript">

    //tabdropdown.initializetabmenu("tab_menu_id", optional_selected_tab_number)

    //ie: tabdropdown.initializetabmenu("tab_menu_id", 2)

    tabdropdown.initializetabmenu("shademenu")

    </script></literal>

    </BODY></HTML>



You will need to download the appropriate files to your main project directory. You will also need to delete the quicklink from each page as it is no longer needed. You can then strip all of the links from your menu page and use it as a launch page.

I found it much cleaner and then the ability to add external and other internal links was crucial to the running of my project.

I hope this assists others.

kujox 3/11/2007

Well done Graeme,
I had to change the &lt; to an < but it works well.
I wonder if it would be worth having a section that just listed enhancements like this one.

T
thesofa 3/11/2007

Gday

Nice on mate

Is there a way we can build this system into the source code to stop having to make the changes each rebuild?