2013-05-22 64 views
2

創建安裝配置文件並需要在特定頁面上顯示某個自定義塊。設置在Drupal安裝配置文件中出現塊的頁面

在profile_name.install:profile_name_install():

$values = array( 
    array( 
     'module' => 'my_custom_module', 
     'delta' => 'my_block', 
     'theme' => $default_theme, 
     'status' => 1, 
     'weight' => 0, 
     'region' => 'help', 
     'pages' => "admin/page1\nadmin/page2\nadmin/page3", 
     'cache' => 0, 
    ), 
); 

$query = db_insert('block')->fields(array('module', 'delta', 'theme', 'status', 'weight', 'region', 'pages', 'cache')); 
foreach ($values as $record) { 
    $query->values($record); 
} 
$query->execute(); 

安裝在模塊配置這些頁面被設置爲「除列出的所有網頁」,但我需要他們在「只有上市後的頁面「;

我應該在$ values數組中添加什麼額外的值?用\ n分隔符設置多個頁面是否正確?

回答

3

hook_block_info() docs,你需要添加visibility

array( 
    'module' => 'my_custom_module', 
    'delta' => 'my_block', 
    'theme' => $default_theme, 
    'status' => 1, 
    'weight' => 0, 
    'region' => 'help', 
    'pages' => "admin/page1\nadmin/page2\nadmin/page3", 
    'cache' => 0, 
    'visibility' => BLOCK_VISIBILITY_LISTED 
), 
+0

爲Drupal 6,你必須使用[hook_block(https://api.drupal.org/api/drupal/developer!hooks!core。 PHP /功能/ hook_block/6)。 – user11153