国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

drupal按分類進行文章排序的實現方法

2024-08-30 19:07:48
字體:
來源:轉載
供稿:網友

本文實例講述了drupal按分類進行文章排序的實現方法。分享給大家供大家參考。具體實現方法如下:

Drupal的文章組織形式,決定了其文章排序是一件比較麻煩的事。由于Drupal中沒有“欄目”這樣的概念,而采用了“分類”的概念,一般網站 都會利用“分類”實現類似“欄目”的功能。但在排序上,由于文章可以同時屬于多個分類,也可以同時屬性一個分類的多個“術語”,因而排序的問題就變得比較 復雜起來。

Drupal上有一些進行排序的模塊,在官網這里有相關的介紹:http://drupal.org/node/398508。

有的時候這些模塊都不能滿足我們項目的要求,只能自己寫一個模塊:nodeorder_taxonomy,只實現了文件的按分類排序。模塊在設計上支持 article類型按任何分類字段進行排序,為描述方便,這里簡化環境,約定以artile類型的field_lanmu_multi字段進行排序,這個 字段來源于分類”文章欄目”(machine name : _article_lanmu)。

1.建立數據表node_term_order:

function nodeorder_taxonomy_schema() {
$schema['node_term_order'] = array (
'description' => 'store information for node term order',
'fields' => array (
'nid' => array (
'description' => 'node id',
'type' => 'int',
'unsigned' => true,
'not null' => true,
),
'tid' => array(
'description' => 'term id',
'type' => 'int',
'unsigned' => true,
'not null' => true,
),
'sticky_order' => array (
'description' => 'stickyOrder, order desc, when >0 sticky, 0 not sticky',
'type' => 'int',
'unsigned' => true,
'not null' => true,
),
'node_order' => array (
'description' => 'node order',
'type' => 'int',
'unsigned' => true,
'not null' => true,
),
),
'indexes' => array(
'nid' => array('nid'),
'tid' => array('tid'),
'sticky_order' => array('sticky_order'),
'node_order' => array('node_order'),
),
'primary key'=> array('tid','nid'),
);
return $schema;
}

這個表里存放了node按分類的順序以及置頂順序。這里的置頂取代了系統默認的sticky字段。sticky_order和node_order分別存放節點的置頂排序值和非置頂排序值,倒序,即值越大越靠前。

2. 對節點數據進行初始化操作。

這一步,把所有的article,按照sticky asc, created asc 的順序,遍歷field_lanmu_multi的值,依次放到node_term_order里,保證節點進入node_term_order以后的順序與原始的排序一致。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 佛教| 姚安县| 敖汉旗| 隆德县| 大埔区| 明溪县| 丘北县| 安平县| 兴业县| 和林格尔县| 龙口市| 乳源| 旬邑县| 徐汇区| 碌曲县| 呼玛县| 罗源县| 琼中| 梧州市| 伊春市| 化隆| 汉川市| 宾川县| 营口市| 岳普湖县| 清徐县| 平阳县| 哈巴河县| 长春市| 襄垣县| 峨边| 克拉玛依市| 郴州市| 兰考县| 九江县| 宁乡县| 陇西县| 昌黎县| 连山| 左云县| 乌拉特后旗|