<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
<font size="-1"><font face="Arial">I've been fighting with this for a
couple weeks now with no resolution, so I'm hoping someone can shed
some light on this for me. I tried using the menu tabs capability in
Views with no luck, so I'm trying to accomplish the same thing in a
module, still with no luck, and I don't have much hair left to pull
out...<br>
<br>
What I want to do is create a page with three tabbed menu items. The
text will be from a Page node, and the three tabs will be views. There
are three roles - regular, associate, and affiliate - that need to have
access. Regular and Associate can see all items, and Affiliate role
can only see what has been flagged as being visible to the Affiliate
role. There are three categories - Basic Information, Best Practices,
and Technology. I've created six views accordingly. What I'm trying
to do is create two menu items: one for Regular/Associate, and one for
Affiliate, with the same intro text. Each will have three tabs, but
the views will be different Here is my hook_menu:<br>
<br>
function mymodule_menu($may_cache) {<br>
$items = array();<br>
<br>
if ($may_cache) {<br>
$items[] = array(<br>
'path' => 'resource-center/reg-assoc',<br>
'title' => t('Resource Center - Regular'),<br>
'description' => t('Resource center for regular and associate
members'),<br>
'callback' => 'resource_center_base_page',<br>
'access' => user_access('regular'),<br>
'type' => MENU_NORMAL_ITEM, <br>
);<br>
<br>
$items[] = array(<br>
'path' => 'resource-center/reg-assoc/basic',<br>
'title' => t('Basic Information'),<br>
'description' => t('Basic Information'),<br>
'callback' => 'resource_center_basic',<br>
'callback argument' => 'resources_reg_assoc_basic',<br>
'access' => user_access('regular'),<br>
'type' => MENU_DEFAULT_LOCAL_TASK, <br>
);<br>
<br>
$items[] = array(<br>
'path' => 'resource-center/reg-assoc/best-practices',<br>
'title' => t('Best Practices'),<br>
'description' => t('Best Practices'),<br>
'callback' => 'resource_center_best',<br>
'callback argument' => 'resources_reg_assoc_best',<br>
'access' => user_access('regular'),<br>
'type' => MENU_LOCAL_TASK, <br>
);<br>
<br>
$items[] = array(<br>
'path' => 'resource-center/reg-assoc/technology',<br>
'title' => t('Technology'),<br>
'description' => t('Technology'),<br>
'callback' => 'resource_center_technology',<br>
'callback argument' => 'resources_reg_assoc_technology',<br>
'access' => user_access('regular'),<br>
'type' => MENU_LOCAL_TASK, <br>
);<br>
<br>
$items[] = array(<br>
'path' => 'resource-center/affiliate',<br>
'title' => t('Resource Center - Affiliate'),<br>
'description' => t('Resource center for affiliate members'),<br>
'callback' => 'resource_center_base_page',<br>
'access' => user_access('affiliate'),<br>
'type' => MENU_NORMAL_ITEM, <br>
); <br>
$items[] = array(<br>
'path' => 'resource-center/affiliate/basic',<br>
'title' => t('Basic Information'),<br>
'description' => t('Basic Information'),<br>
'callback' => 'resource_center_basic',<br>
'callback argument' => 'resources_affiliate_basic',<br>
'access' => user_access('affiliate'),<br>
'type' => MENU_DEFAULT_LOCAL_TASK, <br>
);<br>
<br>
$items[] = array(<br>
'path' => 'resource-center/affiliate/best-practices',<br>
'title' => t('Best Practices'),<br>
'description' => t('Best Practices'),<br>
'callback' => 'resource_center_best_practices',<br>
'callback argument' => 'resources_affiliate_best',<br>
'access' => user_access('affiliate'),<br>
'type' => MENU_LOCAL_TASK, <br>
);<br>
<br>
$items[] = array(<br>
'path' => 'resource-center/affiliate/technology',<br>
'title' => t('Technology'),<br>
'description' => t('Technology'),<br>
'callback' => 'resource_center_technology',<br>
'callback argument' => 'resources_affiliate_technology',<br>
'access' => user_access('affiliate'),<br>
'type' => MENU_LOCAL_TASK, <br>
); <br>
} <br>
return $items;<br>
}<br>
<br>
The URLs for the views match the paths for the MENU_LOCAL_TASK items.<br>
<br>
Here is the function to call the page (as referred to in the menu
callback:<br>
<br>
function resource_center_base_page() {<br>
$output = '';<br>
<br>
$base_node = node_load(84);<br>
$display = node_view($base_node);<br>
<br>
$output = $display;<br>
<br>
return $output;<br>
}<br>
<br>
and then the functions to call the views:<br>
<br>
function resource_center_basic($view_name) {<br>
$view = views_get_view($view_name);<br>
print views_build_view('embed', $view, array(), false, false); <br>
}<br>
<br>
function resource_center_best_practices($view_name) {<br>
<br>
$view = views_get_view($view_name);<br>
print views_build_view('embed', $view, array(), false, false);<br>
}<br>
<br>
function resource_center_technology($view_name) {<br>
<br>
$view = views_get_view($view_name);<br>
print views_build_view('embed', $view, array(), false, false);<br>
}<br>
<br>
After all that, what's happening is that the menu items are only
available to my admin user (the first one created). When I go to
resource-center/reg-assoc, I get my page and the tabs, but when I go to
resource-center/affiliate, I just get the page with no tabs. When I
log in as a regular role, I don't see the menu items at all, and if I
go to resource-center/reg-assoc, I get Access Denied. Am I doing
something wrong, or is this a bug in the menu system.<br>
<br>
Thanks.<br>
<br>
Steve<br>
<br>
<br>
<br>
<br>
</font></font>
</body>
</html>