2016-08-02 84 views
0

在此先感謝您的幫助!我爲我的Drupal項目定製了一個名爲「Gear Post」的內容類型,它允許我查看自行車裝備。 Gear Post有一個稱爲「重量」的字段,用於物品的重量。我正在嘗試編寫我自己的模塊aka功能,該功能允許用戶計算網站上存儲爲齒輪箱的所有齒輪物品的重量。我正在努力獲得齒輪柱的重量屬性。Drupal 7:從特性/模塊的自定義內容類型字段中檢索數據

這是我到目前爲止有: (.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的權重字段的實際值。

太感謝你了 - 我是新來學習的Drupal(每天2 ..)

回答

0

了很多努力和戳約後,我能解決這個我自己。很刺激。不知道這是否是最佳做法,但它有效。 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; 
} 
+0

另外[此](http://drupal.stackexchange.com/questions/77798/how-to-iterate-over-all-the-nodes-from-a-content-type)是非常有益的。 – perrysetgo

相關問題