本文實例講述了drupal按分類進行文章排序的實現方法。分享給大家供大家參考。具體實現方法如下:
Drupal的文章組織形式,決定了其文章排序是一件比較麻煩的事。由于Drupal中沒有“欄目”這樣的概念,而采用了“分類”的概念,一般網站 都會利用“分類”實現類似“欄目”的功能。但在排序上,由于文章可以同時屬于多個分類,也可以同時屬性一個分類的多個“術語”,因而排序的問題就變得比較 復雜起來。
Drupal上有一些進行排序的模塊,在官網這里有相關的介紹:http://drupal.org/node/398508。
有的時候這些模塊都不能滿足我們項目的要求,只能自己寫一個模塊:nodeorder_taxonomy,只實現了文件的按分類排序。模塊在設計上支持 article類型按任何分類字段進行排序,為描述方便,這里簡化環境,約定以artile類型的field_lanmu_multi字段進行排序,這個 字段來源于分類”文章欄目”(machine name : _article_lanmu)。
1.建立數據表node_term_order:
這個表里存放了node按分類的順序以及置頂順序。這里的置頂取代了系統默認的sticky字段。sticky_order和node_order分別存放節點的置頂排序值和非置頂排序值,倒序,即值越大越靠前。
2. 對節點數據進行初始化操作。
這一步,把所有的article,按照sticky asc, created asc 的順序,遍歷field_lanmu_multi的值,依次放到node_term_order里,保證節點進入node_term_order以后的順序與原始的排序一致。
新聞熱點
疑難解答