2

创建了安装配置文件,需要在特定页面上显示一些自定义块。

在 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 分隔符设置许多页面是否正确?

4

1 回答 1

3

根据hook_block_info()文档,您需要添加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
),
于 2013-05-22T08:58:51.800 回答