2012-03-09 82 views
0
$blocks['onemore'] = array(
'info' => t('onemore'), 
'status' => TRUE, 
'region' => 'content', 
'weight' => 0, 
'cache' => DRUPAL_NO_CACHE, 
'visibility' => BLOCK_VISIBILITY_LISTED, 
'pages' => 'admin/structure/nodequeue/1/view/1', 
); 

問題 - 上述塊出現並且完美地工作和如預期在「管理/結構/ nodequeue/1 /視圖/ 1」Drupal的塊沒有顯示在頁面上

我的問題是,我需要根據用戶輸入聲明塊的動態數量。所以我寫了一個數據庫提取和每個循環。 如果我這樣做,那麼塊顯示在'管理/模塊',但它不是在'內容'區域的七個主題。正如我想在那裏展示的那樣。

我已經雙重檢查了值,甚至管理員/結構/塊/管理/ xdmp/onemore /配置有值,但區域未選中。

我假設每個循環或db查詢都有一些衝突。請在此建議您的想法。

function xdmp_block_info() { 
$blocks = array(); 
// Here we are going to do a db query so that I can get a list of 
// block ids to declare 
$resultxdmp = db_query(" 
SELECT * FROM xdmp_container_list "); 


foreach($resultxdmp as $resultRecords) 
{  
$xdmp_nodeque_id_to_display =(int)$resultRecords->xdmp_nodequeue_id; 
$xdmp_nodeque_id_to_display = intval($xdmp_nodeque_id_to_display); 

$xdmp_path_to_show_block = 'admin/structure/nodequeue/'.$xdmp_nodeque_id_to_display.' 
/view/'.$xdmp_nodeque_id_to_display.''; 


$xdmp_machinenameofblock=(string)$resultRecords->xdmp_container_machine_name; 
$xdmp_nameofblock=(string)$resultRecords->xdmp_container_name; 



$blocks[$xdmp_machinenameofblock] = array(
'info' => t($xdmp_nameofblock), 
'status' => TRUE, 
'region' => 'content', 
'weight' => 0, 
'cache' => DRUPAL_NO_CACHE, 
'visibility' => BLOCK_VISIBILITY_LISTED, 
'pages' => $xdmp_path_to_show_block, 
); 

    } // end for for each 

return $blocks; 
} 

歡呼聲, 維沙爾

回答

1

你確定'content'區域是有效的?如果它不是,它當然不能顯示:)

+0

我確定內容區域是有效的,它顯示當我手動給hook_block_info函數賦值 – 2012-03-09 13:29:41