drupal按分类进行文章排序的实现方法

drupal按分类进行文章排序的实现方法,第1张

drupal按分类进行文章排序的实现方法

本文的重点是详细介绍了drupal如何按照分类对文章进行排序,详细分析了drupal文件的组织结构和文章排序的方式,很有实际意义,朋友们一定要参考。

在本文中,案例描述了drupal如何根据分类对文章进行排序。分享给大家参考。实际的完成方式如下:

Drupal的文章组织结构给文章排序带来不便。因为Drupal中没有“列”的定义,而是选择了“分类”的定义。一般网站都会用“分类”来完成相似栏目的功能。但在排序方面,排序的问题越来越复杂,因为文章可以分成几类,也可以用一类的几个“专业术语”来表征。

Drupal上有一些排序模块,官网这里有详细介绍:http://drupal.org/node/398508.

在某些情况下,这种模块无法顾及到每个人新项目的规定。它只写了一个模块:nodeorder_taxonomy,只完成文档按分类排序。在模块设计方案中,文章类别要按照所有分类字段进行排序。为了描述方便,这里简化了自然环境。承诺按艺术家类别的字段_牧兰_多进行排序,该字段来自分类的文章栏(机器名:_文章_牧兰)。

1.创建数据分析表node_term_order:

复制下面的代码:函数nodeorder_taxonomy_schema(){
$schema['node_term_order']=array(
'description'=>存储节点术语顺序的信息',
'fields'=>;数组(
'NID'=>;数组(
'description'=>;nodeid',
'type'=>;int',
'unsigned'=>;true,
'notnull'=>;true,
),
'tid'=>;数组(
'description'=>;术语id',
'类型'=>int',
'unsigned'=>;true,
'notnull'=>;true,
),
'sticky_order'=>;数组(
'description'=>;stickyOrder,订购desc,当>'0粘性,0非粘性',
'type'=>;int',
'unsigned'=>;true,
'notnull'=>;true,
),
'node_order'=>;数组(
'description'=>;节点顺序',
'类型'=>int',
'unsigned'=>;true,
'notnull'=>;true,
),
),
'indexes'=>;数组(
'NID'=>;array('nid'),
'tid'=>;array('tid'),
'sticky_order'=>;array('sticky_order'),
'node_order'=>;array('node_order'),
),
'primarykey'=>;array('tid','nid'),
);
return$schema;
}

此表根据分类及其顶层顺序存储节点的顺序。这里的顶部替换了系统软件默认设置的粘性字段。Sticky_order和node_order分别存储连接点的top排序值和非top排序值,顺序相反,即值越高,前面越高。

2.执行重置连接点数据信息的实际 *** 作。

在这一步中,所有的文章都按照stickyasc的顺序解析成xmlfield_牧兰_multi的值,创建asc,然后放入node_term_order,以保证node_term_order之后的连接点顺序与初始顺序一致。

3.监督连接点的实际 *** 作。

Hook_node_insert、hook_node_update和hook_node_delete用于监督连接点的插入、升级和删除,node_term_order表也相应改变。

4.显示排序页面。

排序是根据分类的一个技术术语来分配连接点的顺序。提出了两种排序方法:页面上的拖放排序和特定连接点的排序。

页面上的拖拽排序,利用drupal呈现的可拖拽排序报表的功能,在其他文章中有详细解释,这里不多解释。唯一必须指出的是,在 *** 作面板上构建了另一个权重字段,按node_order或sticky_order从0开始依次取值,在报表排序中改变权重的值。提交后,按权重值排序,然后更改node_order或sticky_roder的值。
通过立即指定连接点来对零件进行排序的方法是,根据某个技术术语来指定某个连接点在该技术术语排名中的位置。与页面拖动和排序相比,这很容易实现。

5.显示信息排序结果。

用技术术语来说,显示文章信息的方式是分类法/术语/%术语。是系统软件默认设置的技术术语下的文章目录。重新定义了分类学/term/%term/list的方式,在自己的程序流程中完成技术术语下文章的排序目录。整个过程非常简单,不再赘述。

以上是大概的完成方式。比这个更复杂,比如按照文章类别中所有分类字段(包括标签)是否可以配备管理方式排序;还有一个显示所有技术术语的分层分类页面,连接到分类目录和排序页面。并使用hook_views_data向视图应用程序的视图模块声明数据信息。

期待以上对大家的drupal二次开发有所帮助。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/772109.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存