📅  最后修改于: 2023-12-03 15:14:48.328000             🧑  作者: Mango
在 Drupal 9 中,我们可以使用参数从渲染数组渲染视图块。我们可以定义要显示的视图以及显示视图时要使用的参数。以下是具体步骤:
/**
* Implements hook_preprocess_block().
*/
function my_theme_preprocess_block(&$variables) {
// Check if the block is a view block.
if (isset($variables['elements']['content']['#view_id']) && isset($variables['elements']['content']['#view_display_id'])) {
// Define the view and display.
$view_id = $variables['elements']['content']['#view_id'];
$view_display_id = $variables['elements']['content']['#view_display_id'];
// Define the arguments.
$args = [
'my_argument' => 'my_value',
];
// Load the view.
$view = Views::getView($view_id);
// Set the display.
$view->setDisplay($view_display_id);
// Set the arguments.
$view->setArguments($args);
// Render the view.
$variables['content'] = $view->render();
}
}
在上面的示例代码中,我们使用了 $args 数组来定义要传递给视图的参数。在视图中,我们可以通过使用参数占位符来获取传递的参数,并根据参数显示相应的内容。例如,在 Views 中,我们可以在“Contextual filters”部分中添加参数占位符,并将其作为筛选器使用。
最后,我们可以在主题的模板文件中使用 $content 变量来显示渲染的视图块。例如,在 block.html.twig 文件中:
<div{{ attributes }}>
{{ content }}
</div>
按照上面的步骤可以从渲染数组渲染视图块,并通过定义参数来控制视图的显示。