2014-06-27 36 views
0

Drupal 7 Hook_menu訪問回調未返回正確的布爾值。Drupal 7訪問回調無法正常工作

在我們開始之前。是!緩存被清除了很多。

我實現了用於測試的簡單功能:

$items['tutor_review_selection'] = array(
    'title'    => t('example'), 
    'page callback'  => 'my_module_example_page', 
    'access callback' => my_module_access(array('administrator')), 
    'type'    => MENU_NORMAL_ITEM 
); 

function my_module_access($roles) { 
    global $user; 

    $check = array_intersect($roles, array_values($user->roles)); 

    return empty($check) ? FALSE : TRUE; 
} 

返回true用於登錄和註銷的用戶。

這裏是重要的部分:

我稱之爲「my_module_example_page」功能「my_module_access」功能,它能夠正常工作。

任何人都可以照亮一些爲什麼這不會在訪問回調工作?

也許與操作順序有關?

緩存被清除。

回答

1

如果檢查Drupal 7 hook_menu documentation你會看到下面的代碼:

function mymodule_menu() { 
    $items['abc/def'] = array(
     'page callback' => 'mymodule_abc_view', 
     'page arguments' => array(1, 'foo'), 
    ); 
    return $items; 
    } 

頁面回調「接受一個字符串,這是回調函數的名稱。 「頁面參數」數組中提供了要發送給該函數的參數。

編輯請注意,您應該創建一個權限並將您的角色分配給該權限,然後檢查權限而不是檢查特定角色。

+0

謝謝。經過測試,這是我的問題。令人驚訝的是,你會錯過如此簡單的事情。 –