Как вывести разные типы материалов в разных регионах на одной странице?
Views давно не вспомогательный модуль, а must have. В Drupal 8 он уже входит в ядро. И использовать Views это было бы правильно в данной ситуации. 
Если же Вы все таки хотите использовать кастомный блок, то вам необходимо использовать hook_block_info() для того чтобы объявить блоки. Один блок для каждого типа материала, либо сделать форму настроек для блока с помощью хука hook_block_configure(), где можно выбирать какой тип материала необходимо отображать в этом блоке. Далее в hook_block_view() необходимо выбрать из базы ноды нужного типа, можете использовать что-то такое:$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node');
$query->propertyCondition('status', NODE_PUBLISHED);
$query->propertyCondition('type', 'CONTENT_TYPE');
$result = $query->execute();
$nodes = node_load_multiple(array_keys($result['node'])); где в CONTENT_TYPE подставить machine name нужного вам типа материала. И теперь можно использовать node_view_multiple() для того чтобы отобразить все полученные ноды в нужном режиме отображения.
вам надо освоить Display Suite tlito.ru/node/126