2013-02-10 42 views
0

我有一個學生在drupal 7書籍產品,他們有一個伴侶老師的書產品。我想創建一個視圖模式,用於呈現學生用書(產品展示)以及對教師用書的實體參考,這也是一本書產品。 事情是我可以顯示id,標題或呈現實體,但不顯示其他實體字段。我想顯示的是:實體引用在視圖模式下使用其他字段

學生ISDN:_ __ _ __

教師的ISDN:_ __ _ __

...其它產品字段(學生)...

我已經嘗試了幾個模塊,如dis玩套房但沒什麼,你能幫忙嗎?我錯過了什麼?

回答

1

我就是這麼做的:

// Initial weight 
    $weight = 2; 
    // Student's book entity 
    $student_book_entity = $node->field_student_book[LANGUAGE_NONE][0]['entity']; 

    // Get Student's book ISBN and alter some attributes 
    $student_isbn_field = array_merge(field_view_field('commerce_product', $student_book_entity, 'field_book_isbn'), array(
     '#field_name' => 'field_students_book_isbn', 
     '#title' => t('Student\'s Book ISBN'), 
     '#weight' => $weight++, 
    ) 
); 
    $node->content['field_students_book_isbn'] = $student_isbn_field; 

    // Teacher's book entity 
    $teachers_book_entity = $node->field_teacher_book[LANGUAGE_NONE][0]['entity']; 

    // Get Teacher's book ISBN and alter some attributes 
    $teacher_isbn_field = array_merge(field_view_field('commerce_product', $teachers_book_entity, 'field_book_isbn'), array(
     '#field_name' => 'field_teachers_book_isbn', 
     '#title' => t('Teacher\'s Book ISBN'), 
     '#weight' => $weight++, 
    ) 
); 
    $node->content['field_teachers_book_isbn'] = $teacher_isbn_field; 
1

一個快速解決方案是爲您的內容類型創建一個新的節點模板。例如:node--student.tpl.php,然後使用以下代碼作爲示例:

$referenced_node = node_load($node->field_ref[LANGUAGE_NONE]['0']['target_id']); 
print node_view($referenced_node, "teaser"); 

希望這會有所幫助。

+0

我不使用的看法,我只是用視圖模式顯示單個節點。 – dotoree 2013-02-10 09:44:54

+0

不確定node_load是否與實體一起工作,我正在嘗試通過使用hook_node_view() – dotoree 2013-02-10 10:14:51

+0

這個模塊來完成。這段代碼從引用節點檢索'nid',然後使用'node_load'加載節點對象。沒有什麼奇怪:) – 2013-02-10 10:44:39