该视图的目的是否仅提供该<select>
元素和<option>
元素?那么这真的不是办法。不要使用视图构建表单或表单元素。
您最好在自定义块中提供自定义表单或自定义 item_list。然后可以将块放置在您需要的任何地方。那里有很多教程。也许以以下为起点:https ://valuebound.com/resources/blog/creating-a-custom-form-in-a-block-in-two-steps-in-Drupal-8
否则,如果您真的想继续您的道路,我认为您必须简单地预处理列表和时间字段以根据您所需的条件切换到不同的模板。我强烈猜测没有选项可以通过命名模式自动考虑视图中节点的字段的自定义模板。您必须先手动添加该模板建议。
要放置在MYMODULE.module
文件或MYTHEME.theme
文件中的片段。
/**
* Implements hook_theme_suggestions_HOOK_alter().
*/
function MYMODULE/MYTHEME_theme_suggestions_item_list_alter(array &$suggestions, array $variables) {
// Use \Drupal::routeMatch() to get the current view ID or some other indicator.
// Sample: Get the current view ID.
$view_id = \Drupal::routeMatch()->getRouteObject()->getDefault('view_id');
// Install Devel, Kint module, then uncomment the following line and flush caches to inspect the outcome.
// ksm($view_id);
// Add the template suggestion.
// Add your template now under /templates/item-list--VIEWID.html.twig
if (!empty($view_id)) {
$suggestions[] = 'item_list__' . $view_id;
}
}
这种方法的缺点是,这将触发item_lists
该确切页面/视图上的所有内容以采用此模板。您可以使用自定义模块和自定义 item_list 和/或表单更好地细化模板。
或者,您也可以将逻辑移动到日期字段和自定义视图模式以及为此提供的额外模板。然后至少它停留在它所属的地方。
要启用 Twig 调试并将内置模板建议打印为 HTML 注释,请遵循本文:https ://www.drupal.org/docs/8/theming/twig/debugging-twig-templates