【问题标题】:Drupal 7: retrieving data from fields of custom content type for a feature/moduleDrupal 7:从功能/模块的自定义内容类型字段中检索数据
【发布时间】:2016-08-02 21:43:08
【问题描述】:

提前感谢您的帮助!我的 Drupal 项目有一个名为“Gear Post”的自定义内容类型,允许我查看自行车装备。 Gear Post 有一个名为“重量”的字段,用于表示物品的重量。我正在尝试编写自己的模块又名功能,该功能允许用户计算网站上存储为齿轮帖子的所有齿轮物品的重量。我正在努力获得齿轮柱的重量属性。

这是我目前所拥有的: (.module 文件)

<?php
 function get_content_fields_array() {
 $list = node_type_get_names(); //just for info
 echo $list['gear_post']; //this correctly gets 'Gear Post'
 $field_list = field_info_instances('node', 'gear_post');

 $allFieldKeys = array_keys($field_list);
 echo ($allFieldKeys[4]); //'field_weight'

???

我尝试使用 array_keys,因为当我通过 var_dump 输出关联数组时,我发现它们很难读取。

我想要做的是拥有一个包含所有权重的数组,这样我就可以遍历它们并显示它们,然后将它们用于我的数学运算。但我不知道如何获取每个 Gear Post 的 weight 字段的实际值。

非常感谢 - 我是学习 Drupal 的新手(第 2 天..)

【问题讨论】:

    标签: php drupal drupal-7 drupal-modules


    【解决方案1】:

    经过大量尝试和探索,我自己解决了这个问题。相当令人兴奋。不确定这是否是最佳做法,但它确实有效。 This 这有助于解决这个问题!

    function getWeights() {
     $query = new EntityFieldQuery();
     $query->entityCondition('entity_type', 'node')
      ->entityCondition('bundle', 'gear_post')
      ->propertyCondition('status', 1);
      $result = $query->execute();
    
    if (!empty($result['node'])) {
      $nids = array_keys($result['node']);
      $nodes = node_load_multiple($nids);
      $weights = array();
    
       foreach ($nodes as $node) {
          $fields = field_view_field('node', $node, 'field_weight'); 
          array_push ($weights, $fields[0]['#markup']);
         }
     }
     return $weights;
    }
    

    【讨论】:

    • 另外this 也很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多