我需要以編程方式刪除節點顯示上的圖像字段。Drupal 7 hook_node_view刪除視圖生成的內容
要做到這一點我的模塊實現hook_node_view,我可以在$節點 - >內容它禁止顯示節點頁面上取消設置數據。 但是,由於Views生成圖像,因此它不在$ node-> content中表示。
任何人都可以提出一個解決方案,將允許我從模塊中刪除視圖生成的內容?
我需要以編程方式刪除節點顯示上的圖像字段。Drupal 7 hook_node_view刪除視圖生成的內容
要做到這一點我的模塊實現hook_node_view,我可以在$節點 - >內容它禁止顯示節點頁面上取消設置數據。 但是,由於Views生成圖像,因此它不在$ node-> content中表示。
任何人都可以提出一個解決方案,將允許我從模塊中刪除視圖生成的內容?
如果您正在使用意見生成您的節點,我會建議你取消設置在template_preprocess_views_view(&$vars)
你的領域,你可以通過$vars['view']->result
這與您的視圖中顯示的所有行的數組訪問它。然後,您可以搜索每行中的字段並取消設置。
例如,對於像場結構:
function template_preprocess_views_view(&$vars) {
foreach($vars['view']->result as $test){
$test->field_field_image[0]['rendered']['#access'] = FALSE;
}
}
我希望它幫助。
感謝@justinelejeune的努力,我找到了一個更簡單的解決方案。
實施hook_node_view,可以正好被清除目標字段或將字段陣列爲空白即:
function mymodule_node_view($node, $view_mode, $langcode){
if($view_mode != 'full')
return;
unset($node->field_banner); // or $node->field_banner = array();
}
感謝偉大的建議。儘管它可以提供幫助,但它會移除整個網站的視圖。我只需要它在特定節點上刪除它。由於沒有節點數據,我無法檢查 – sisko
如果特定節點與特定內容類型相關,則檢查不會有問題。但是,如果它是隨機的,你別無選擇,只能檢查每個nid。祝你好運。 – Djouuuuh