2010-07-05 77 views
0

帶有自定義查詢的視圖顯示在右側邊欄中,標題爲「Most Downloaded」:http://tf2huds.com。查看生成的查看視圖正下方。在drupal視圖中自定義查詢 - 現在無法排序

就擺在自定義查詢我使用的views.module文件驗證碼:

<?php 
function views_views_pre_execute(&$view) { 
    if($view->name=="hud_downloads") { 
    $view->build_info['query']="SELECT node.nid AS nid, 
     node.title AS node_title, 
     SUM(pubdlcnt.count) AS pubdlcnt_count 
     FROM node node 
     LEFT JOIN pubdlcnt pubdlcnt ON node.nid = pubdlcnt.nid 
     WHERE (node.type in ('huds')) AND (node.status <> 0) 
     GROUP BY node.nid ORDER BY pubdlcnt_count DESC"; 
    } 
} 
?> 

Pastebins:http://pastebin.com/QTrp1kpt

  • 塊無定製:

    任何想法,爲什麼我不能整理我的觀點?提前致謝。

  • 回答

    2

    您無法對視圖進行排序,因爲您對SQL進行硬編碼時始終保持不變。所以當你用視圖改變SQL時,通過表格,它會被你的views_views_pre_execute函數覆蓋。

    +0

    感謝您的快速回答。有什麼方法可以恢復該功能並保留我的自定義查詢? – Radu 2010-07-05 14:48:38

    +0

    這是我沒有覆蓋的查詢: SELECT node.nid AS nid,node.title AS node_title,pubdlcnt.count AS pubdlcnt_count FROM節點LEFT JOIN pubdlcnt pubdlcnt ON node.nid = pubdlcnt.nid WHERE (node.type in('huds'))AND(node.status <> 0)ORDER BY pubdlcnt_count DESC 是Drupal和Views的新手段我認爲改變它有點不會影響可用性風景。 – Radu 2010-07-05 15:00:58