(注:本文比较偏向代码方面,希望读者有一定的drupal开发基础)
废话少说,先看我要介绍的效果 demo
由于views的过滤器总是不那么尽如人意,或者样式方面定制起来比较困难,本人的前端技术比较差,views和panels的忠实用户请勿喷,所以本篇文章介绍一下基于现有的模板来开发一套内容过滤器的功能。
以某网站的一个产品列表页面作为例子,产品分为:品牌 、 类型 、系列 三大分类,每个分类下面有若干个小分类,比如品牌有:SUMSANG、HTC,类型有:手机壳、手机套,系列有:流沙系列、裸壳系列。比如我们要搜索
[HTC牌子的] [流沙和裸壳系列的] [手机壳和手机套]
查询的条件过滤:1. 过滤出品牌为htc的 ; 2.过滤出系列为流沙或裸壳 3. 过滤出类型为手机套或手机壳
大致流程:
1. 添加内容
1.1 类型product
1.2 添加vocabulary:品牌、类别、系列以及它们的各个小分类
1.3 添加品牌、类别、系列三个字段到product,分别指向三大分类
1.4 装devel模块批量生成测试数据
具体的,请安装源码以后再后台查看
2. 定义页面路径
3. 定义页面回调函数
4.根据URL参数过滤内容
主要通过product_get_products()来过滤,最终返回以$node对象为单元的数组
5. 渲染数据
theme('product', array('products' => $products)), 针对过滤以后返回的数据进行渲染,生成最终的页面,注意要先注册‘product’这个theme。
这里的template' => 'product'指定通过模板product.tpl.php来渲染内容,所以我们把前端切好的模板(html+css+js)放到这里面
重点分析:
1. 前端
2.后端
这里需要注意的是db_or()函数,也就是sql语句中的WHERE a.= '123' OR b = '456',因为我们要搜索某个大分类下的某几个小分类,所以这里是“或(OR)”的关系,而大分类之间是“与(AND)”的关系
附件: http://demo.lcnphp.com/lee.rar
源码的后台账号和密码分别是:admin和1
Cool. 效果很好。
Cool. 效果很好。
后台用户名密码不正确
后台用户名密码不正确
有好几个产品类,不知道怎么套
有好几个产品类,不知道怎么套
不错
不错嗯!
非常不错,赞一个
非常不错,赞一个
这样的解决方案确实比较简洁
这样的解决方案确实比较简洁,但是感觉没有利用上Drupal的优势。
激动,赞一个! 感谢分享。
激动,赞一个! 感谢分享。
赞一个! 感谢分享。
一直在学druapl,这个网站对我的帮助很大.brushforyou
案例源代码下载不了
各位学长,
小弟下载案例时提示网页打不开,谁还有源码,请共享一下....
请发到小弟的邮箱:909021694@qq.com
谢谢....忠实的drupal粉丝...
一直在学druapl…
一直在学druapl,drupalchina网站对我的帮助很大.lovening.se
忠实的drupal粉丝...youloveing.nl
忠实的drupal粉丝...youloveing.nl
Nice!