2012-03-09 3 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'에서드루팔 블록 페이지에

을 예상대로

내 문제는 내가 필요로한다는 것입니다 사용자 입력을 기반으로 블록의 동적 양을 선언합니다. 그래서 db fetch와 각 루프에 대해 썼습니다. 이렇게하면 블록이 'admin/modules'에 나타나지만 7 개의 테마에 대한 'content'영역에 없습니다. 나는 그것을 거기에 보여주고 싶다.

값을 두 번 확인했으며 관리/구조/블록/관리/xdmp/onemore/configure조차 값을 가지고 있지만 영역이 선택되지 않았습니다.

각 루프 또는 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 func에 값을 줄 때 나타납니다. –

관련 문제