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