Drupal模板上其他段落类型的访问字段

时间:2020-07-08 19:18:56

标签: php drupal twig drupal-8

我是drupal的新手。我的机器类型为“ card_group_speaker”的段落类型可以具有机器名称为“ card_type_speaker”的多个段落类型项。
在“ card_group_speaker”上,我有一个机器名称为“ field_card_group_speaker_width”的字段,并希望从与段落类型“ card_type_speaker”相对应的模板中访问此变量。我尝试使用挂钩,也直接在模板上为“ card_group_speaker”设置变量,而没有工作,甚至不知道什么是正确的方法。

文件:

-paragraph--card-group-speaker.html.twig:
{% extends 'paragraph--card-group.html.twig' %}

-paragraph--card-group.html.twig:
{% block paragraph %}
  <div{{ attributes.addClass(classes) }}>
    {% block content %}
      {{ content }}
    {% endblock %}
  </div>
{% endblock paragraph %}
 
-paragraph--card-type-speaker.html.twig:
{#
    want to access field "field_card_group_speaker_width" 
    from paragraph type "card_group_speaker"
#}
{% include '@includes/card-speaker.html.twig' %}

使用挂钩的尝试失败:

/**
 * Implements hook_preprocess_paragraph().
 */
function akamai_dev_preprocess(&$variables, $hook) {
  if($hook == "paragraph") {
    if(isset($variables['_card_group_speaker']) && isset($variables['_card_group_speaker']['field_card_group_speaker_width'])){
      $variables['card_width_x'] = $variables['_card_group_speaker']['field_card_group_speaker_width'];
    }
  }
}

我试图访问'card_width_x'和content.card_width_x,但在-paragraph--card-type-speaker.html.twig内部均无效,因为该字段属于-paragraph--card-group-speaker.html.twig段落

使用模板的示例失败:

在-paragraph--card-group-speaker.html.twig中尝试设置变量'set varx = content.field_card_group_speaker_width',并且可以在-paragraph--card-group.html.twig中访问它,但不能在-paragraph-中访问-card-type-speaker.html.twig。

有什么想法吗?预先感谢

0 个答案:

没有答案