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()
для того чтобы отобразить все полученные ноды в нужном режиме отображения.