【问题标题】:Content(context)-related block in Drupal7Drupal 7 中与内容(上下文)相关的块
【发布时间】:2013-05-31 07:24:47
【问题描述】:

案例如下:例如,我有一个带有“data_field”字段的自定义内容类型。我想在侧边栏上有一个块,可以正确处理和显示这个“data_field”字段的数据。如何使用 Drupal API 访问它?

附:我知道这个问题可以通过 Views 以某种方式解决,它具有特定于内容的显示能力,但我对它通过 API 实现的方式很感兴趣。

【问题讨论】:

    标签: drupal drupal-blocks


    【解决方案1】:

    使用内容类型的默认 Drupal 设置呈现字段:

    $n = node_load($nid_of_content);
    $n = node_view($n);
    print render($n['field_somevalue']);
    

    您也可以指定节点显示格式,例如

    $n = node_view($n, 'teaser');
    

    如果您想以不同的方式操作字段内容,请使用原始字段值:

    $n = node_load($nid_of_content);
    $value_you_want = $n->field_data_field_somevalue['und'][0]['value'];
    

    这假设您没有使用任何语言/翻译功能 - 'und' 代表“未定义”并表示没有为节点明确设置语言。

    如果字段可以包含多个值,则遍历['und'][0]['value']到['und'][x]['value']

    上面的代码显示了大多数字段类型的原始值。在开发过程中使用 print_r($n->field_somevalue) 找出哪些值可供您使用;这取决于字段类型。例如,文件类型为您提供“uri”(以及其他)而不是“值”,文本字段也具有应用了输入格式过滤的“安全值”,长文本字段将具有“摘要”和“安全摘要”,&c。

    【讨论】:

    • 你是最棒的!=) 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 2012-01-18
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多