0

我们的 Drupal 8.4 站点(程序页面)上有一些页面应该显示他们程序中的课程列表。升级后,只要保存这些页面,课程列表就会消失。我们的设置涉及 3 种不同的内容类型:

  1. 程序页面,它有一个视图字段,该字段使用过滤器来获取属于其程序的课程,称为field_program_courses。这就是消失的东西。
  2. 程序,其中包含有关程序的信息并具有指示它们链接到哪个程序页面的实体参考字段(field_program_page_to_link)。
  3. 课程,其中包含有关课程的信息,包括它们所属的程序(field_select_specific_program)。

由于从 Drupal 8.1 升级到 8.4,任何时候我们在程序页面上单击“保存”(即使没有进行任何更改)都会导致该程序页面的field_program_courses的数据库条目被删除,并且在查看页面时停止显示。我们必须回到以前的修订版才能再次出现。

如果我创建一个新课程,它将在现有程序页面上正常显示,但如果我尝试创建一个新程序页面,它将不会显示任何课程。我尝试创建一个新视图来替换field_program_courses,但它不允许我在关系下拉列表中选择field_program_page_to_link,因此我无法进行适当的过滤。

可悲的是,这似乎是由 Drupal 8.4 的更新引起的,并且无法回滚。关于如何进行的任何想法、问题或建议?

4

1 回答 1

0

最终求助于承包商来解决这个问题。他们说问题的发生是因为 field_program_courses 字段有一个加载视图列表的钩子。那停止工作,所以唯一可选择的选项变成了“无”,所以保存页面当然使用“无”值。至于它为什么停止工作,他们的猜测是它是由 8.1->8.4 升级中的 field_block contrib 模块的变化引起的,尽管他们不确定它到底是什么。

修复涉及使用另一个没有上下文过滤器的显示重新创建视图,并向我们的主题添加一些代码,以加载程序页面的块。

于 2018-06-05T21:20:17.103 回答