2009-01-24 101 views
1

您好我需要在drupal中創建一個模塊來顯示一些數據,而不是一個Drupal開發人員,並閱讀了幾個教程後,我似乎無法顯示任何東西。Drupal問題,如何創建一個快速內容模塊?

我有下面的代碼:

<?php 
function helloworld_perm() { 
    return array('access helloworld content'); 
} 

function helloworld_listado(){ 
return "yea"; 
} 

function helloworld_menu(){ 
    $items = array(); 
    $items["listado"] = array(
     'title' => t('Listado de empresas'), 
     'callback' => 'helloworld_listado', 
     'access' => array('access helloworld content'), 
     'type' => MENU_NORMAL_ITEM 
    ); 
    return $items; 
} 

當我輸入/ listado我得到一個拒絕訪問 您無權訪問此頁面。

任何想法即時做錯了什麼? 如果我轉到管理 - >模塊 - >權限,我檢查了所有角色的訪問權限以訪問hellowold內容。

Ty!

回答

6

從你的菜單數組結構在helloworld_menu()中,我假設這是Drupal 6.如果是這樣,你需要重命名'訪問'爲'訪問參數'。見http://api.drupal.org/api/function/hook_menu/6

Drupal的API文檔還包括一重評論page_example.module是在做基本上你在這裏做什麼,你可能想看看:http://api.drupal.org/api/file/developer/examples/page_example.module/6/source

希望幫助!

哦。並且不要忘記從Administer >> Site configuration >> Performance中的「清除緩存」按鈕之後清除緩存。

0

看起來你正在爲hook_menu使用混合的Drupal 5(數組內容)和Drupal 6(沒有$ may_cache,路徑索引的項目)語法。

如果您正在使用的Drupal 6,這應該是這樣的:

<?php 
function helloworld_perm() { 
    return array('access helloworld content'); 
} 

function helloworld_listado(){ 
return "yea"; 
} 

function helloworld_menu(){ 
    $items = array(); 
    $items["listado"] = array(
     'title'   => t('Listado de empresas'), 
     'page callback' => 'helloworld_listado', 
     'access arguments' => array('access helloworld content'), 
     'type'    => MENU_NORMAL_ITEM, 
    ); 
    return $items; 
} 
?> 

需要注意的是,MENU_NORMAL_ITEM是爲「類型」的默認值,你並不需要指定它。

此外,正如我們尊敬的網站剛剛說的,您可以在她指向的頁面上找到詳細的解釋。

1
=> t('Listado de empresas'), 
    'page callback' => 'helloworld_listado', 
    'access arguments' => array('access helloworld content'), 
    'type'    => MENU_NORMAL_ITEM, 
); 
return $items; 
} 

需要注意的是,MENU_NORMAL_ITEM是用於type的默認值,你並不需要指定它。

此外,正如我們尊敬的網站剛剛說的