I have followed the instruction to create a new block here which is basically the same as here on SE. My block is indeed created but the region is wrongly set to "none" instead of "Content Post".
In my module events.module file:
function events_block_info () {
return [
'events_list' => [
'info' => "Events list",
'region' => 'content_post',
'visibility' => BLOCK_VISIBILITY_NOTLISTED
]
];
}
function events_block_view ($delta = '') {
$result = false;
if ($delta == 'events_list') {
/* ... do my stuff .... */
}
return $result;
}
This creates a block but the region is set to "none". The drawback is I have to go on each environment and change the region manually back to "Content Post". It is inefficient.
I also find it extremely weird that the creation of a block is done this way. I would expect instead that the creation takes place in the module.install file in the hook_install() function. Maybe there is way?
event
, but you're implementing hooks for a module calledevents
). Other than that your method is correct, there's no way to provide blocks through an install file (it's not how Drupal's architecture works yet, in Drupal 8 you don't use the block hooks).region
is per-theme by the way, and has some extra constraints, the variable desc in the function docs themselves should let you know if those apply to youhook_block_info()
is executed, it will add a block for each enabled theme. But in my case all of them are set to the "none" region...