提问人:TerranRich 提问时间:5/29/2022 更新时间:6/9/2022 访问量:45
如何在 Drupal 9 中存储有关摔跤手及其参赛主题的内容,以便可以从其他摔跤手那里“借用”主题条目?
How do I store content in Drupal 9 about wrestlers and their entrance themes in such a way that a theme entry can be "borrowed" from another wrestler?
问:
我正在 Drupal 9 中构建一个网站,理想情况下,该网站将列出职业摔跤手的入口主题。鉴于以下要求,我无法弄清楚此类站点的架构:
- 每个摔跤手/团队都是一个节点(很可能是内容类型);
- 每个摔跤手/团队都有一个他们使用的多个入口主题的列表;
- 每个摔跤手/团队必须能够从另一个摔跤手/团队“借用”其任何主题列表条目,不仅能够提取有关借用的主题曲目的信息,还能够提取有关“借用”该主题的摔跤手/团队的信息。
下面是一个真实示例:
- Triple H在WWE期间使用了许多入口音乐主题。然而,他也进入了 D-Generation X 主题的擂台(好吧,无论如何,这个主题的许多变体中的一些)。
- 假设 Triple H 的第 12 个主题是 D-Generation X 的第 3 个主题的“借用”用法。换句话说,DX有多种变体“你准备好了吗?然而,有几次,在他的第 11 和第 13 个入口主题之间,Triple H 使用了 DX 主题的第 3 个变体(这是他的第 12 个主题条目)。
- 我需要找到一种方法来列出和存储入口主题,以便我可以深入到 Triple H 的第 12 个主题条目,发现它与 D-Generation X 的第 3 个主题条目相关联。
我最初的计划是将 Wrestler/Team 和 Theme Track 存储为内容类型。由于主题可以重用,因此将它们存储为自己的可引用实体是有意义的。然后,每个摔跤手/团队都有一个名为“主题列表”的字段,该字段指向“主题用法”段落类型。每个主题用法 ¶ 存储:使用此主题的首次日期、有关其用法的说明以及对主题轨道内容节点本身的引用。
但是,这很快就被证明是有问题的,因为您无法引用另一个节点段落的特定实例。这意味着,借用的主题列表是不可能的。
我的下一个想法是添加一个主题用法自定义块类型(或内容类型,但我出于管理原因选择了自定义块),以便每个单独的用法(不仅仅是主题轨道)都可以是一个可以引用的实体。在此模型下,摔跤手的每个主题列表条目都将指向一个主题用法自定义块。每个主题用法都有一个指向主题轨道(内容类型)的字段,另一个指向其他主题用法块(用于借用的主题)。
但是,使用这种方法,我不确定如何使用此模型获取有关每个借用的主题用法的相应摔跤手/团队节点的信息。使用之前的段落,每个主题用法都与引用它的摔跤手/团队节点内在地链接在一起。但是使用第二种方法,这种方式没有类似的“所有权”,这意味着每个主题用法都是由 Wrestler/Team 节点引用的流氓实体,而不是链接到 Wrestler/Team 节点。
我在这里陷入了僵局,不确定如何在Drupal中实现这种架构。我知道这是可以做到的,但我目前还没有看到它。
tl;dr:我如何存储内容,使每个摔跤手都有自己的参赛主题列表,并且任何主题条目都可以引用其他摔跤手的任何一个主题?此参考不仅必须揭示有关主题的信息,还必须揭示有关主题被“借用”的摔跤手的信息。
答:
你很快就有了第一个想法。请记住,Drupal引用实际上是数据库中表之间的关系。因此,您始终可以使用视图筛选器(通过管理 UI)或数据库查询(以编程方式)从引用的实体中获取引用实体
我将在下面总结解决方案:
- 摔跤手/团队和主题轨道是内容类型
- 摔跤手/团队内容类型具有一个名为“主题用法”段落类型的引用的字段
Themes List
- “主题使用情况”有一个名为“主题轨道”内容类型(和其他元数据字段)的引用的字段
Theme Track
- Theme Track 内容类型有一个字段,称为“主题借用”段落类型的引用”
Borrowed Theme List
- Theme Borrowing 有一个名为 Theme Track 内容类型(和其他元数据字段)的引用的字段
Theme Track
评论