我想做什么
在Durpal 7中,我使用块视图在节点标题上方显示制造商名称。我们在内容上面添加了一个自定义区域,这很好。但是,我希望制造商使用节点标题显示内联。
我在Drupal 8里是怎么处理的
在这个相关的问题中,我询问了一个Drupal 8 solution.The drupal 8解决方案,它比较简单,因为我们将所有制造商字段迁移到1个制造商字段中。这使得编码变得容易多了。在我的drupal 7站点中,制造商字段是分开的,这使得代码处理起来有点混乱,因为每个制造商/节点组合都需要一个代码实例。
我的问题
对于drupal 7,是否可以将block视图呈现为节点标题的内联前缀?在这种情况下放置块视图似乎是一种更简单、更前端的Drupal方法。特别是因为我可以在一个块视图中拥有所有的制造商字段,并且它们将根据分类法术语ID上下文过滤器呈现。
发布于 2020-01-02 16:28:59
所以这就是我所做的,以防有人想要完成类似的事情。
首先,必须在MY_THEME.info文件的内容区域上方添加一个新区域,在我的示例中是:
regions[manufacturer_prefix_title] = Manufacturer Prefix Title然后我重写了包含以下内容的page.tpl.php:
对于每个需要page--MY-NODE.tpl.php的节点实例,它现在包含:
(以上所需的是前处理_页钩。)
然后,我创建了一个块视图,将contextual过滤器设置为NID。我还添加了filter条件,以只获得所需的内容类型。
我添加了三个内容:制造商字段,在每个字段上标记exclude from display,在每个字段上标记rewrite the output of this field,以便对这些字段使用replacement模式,并将每个字段包装在我想要的span class中:
[field_MY_FIELD]。
我还确保在hide if empty结果行为下勾选no,以便在字段为空时不会呈现span类,因为不需要这些字段。
然后,我添加了Content: Title字段一次,并为每个制造商字段勾选rewrite the output of this field并使用替换模式,在标题前面留出一个空格:
[field_MY_FIELD_1][field_MY_FIELD_2][field_MY_FIELD_3] [title]由于<#>contextual过滤器被设置为NID,标题将只获取适当的分类法引用字段,因为每个节点只允许一个。
然后,只剩下简单的将新的视图块@admin/structure/block放置到在MY_THEME.info文件中创建的新区域中。我还将块配置为只显示在块视图的filter条件中定义的相同的内容类型。
希望这对某人有帮助!)
https://drupal.stackexchange.com/questions/289571
复制相似问题