DHTML Dynamic project menu generation based on logged in user and cck field

Tagged:

We use this block to display all projects that the logged in user is part of. A new user_refference field was added to the content type project with the multiple values option enabled.

By manually coding in the dhtml menu identifiers we can take advantage of the dhtml "collapse/expand" functionality. This menu generates the project name and links to various filters for project cases of each generated project.

<div class="code">

<ul class="menu dhtml_menu">
<li class="leaf"><a href="/casetracker/cases/all/assigned+state:6,9">My Open Assigned Cases</a></li>
<li class="leaf"><a href="/casetracker/cases/all/my">All My Created Cases</a></li>
<?php
global $user;
$this_user=$user->uid;

$result = db_query("SELECT DISTINCT (n.nid), n.title
FROM node n
LEFT JOIN content_field_project_team cp ON ( n.vid = cp.vid )
LEFT JOIN content_type_project cpp ON ( cpp.vid = cp.vid )
WHERE n.type
IN ('project')
AND n.status =1
AND cp.field_project_team_uid = $this_user
AND ( cpp.field_status_value = 'working' OR cpp.field_status_value = 'alive')
ORDER by n.title"
);

while (
$anode = db_fetch_object($result)) {
?>


<li class="menutitle collapsed" id="menu-sub11<?php print $anode->nid; ?>" ><a href="/node/<?php print $anode->nid; ?>"><?php print $anode->title; ?></a>
<div class='submenu' id='sub11<?php print $anode->nid; ?>'  style="display: none;">
<ul class="menu dhtml_menu">
  <li class="leaf"><a href="/casetracker/cases/<?php print $anode->nid; ?>/all">All Cases</a></li>
<li class="leaf"><a href="/casetracker/cases/<?php print $anode->nid; ?>/state:1">Urgent Cases</a></li>
  <li class="leaf"><a href="/casetracker/cases/<?php print $anode->nid; ?>/my">My Created Cases</a></li>
  <li class="leaf"><a href="/casetracker/cases/<?php print $anode->nid; ?>/assigned">My Assigned Cases</a></li>
  <li class="leaf"><a href="/casetracker/cases/<?php print $anode->nid; ?>/state:16">Resources and Reference</a></li>
<li class="leaf"><a href="/casetracker/cases/<?php print $anode->nid; ?>/state:15">Suggestions and Ideas</a></li>
<li class="leaf"><a href="/casetracker/cases/<?php print $anode->nid; ?>/state:12">Feature Requests</a></li>
</ul>
</div>
</li>

<?php
}
?>

<?php
if ($user->role == 'admin') {
?>

<li class="leaf"><a href="/casetracker/cases/all">All Project Cases</a></li>
<li class="leaf"><a href="/casetracker/cases/all/assigned">All Urgent Cases</a></li>
<?php
}
?>

</ul>
</div>