搜索
开启辅助访问 切换到宽版

QQ登录

只需一步,快速开始

扫一扫,访问微社区

注册 找回密码
查看: 6312|回复: 4
打印 上一主题 下一主题

请问我想在首页调用栏目的产品,怎么弄

[复制链接]
跳转到指定楼层
楼主
发表于 2012-6-28 23:27:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如我调用栏目一下面的8条最新产品的数据,应该怎么弄,我捣鼓来捣鼓去,调不出来
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 分享分享 支持支持 反对反对
回复

使用道具 举报

沙发
发表于 2012-7-1 21:37:29 | 只看该作者
后台管理->扩展功能->模块配置 有个最新商品模块,可以参考这个做一个某个栏目最新产品的模块。

因为opencart是mvc模型设计的,因此一个模块需按照mvc模型结构建立多个文件,不仅要新建前台的显示相关文件,还要新建后台管理的文件,前台和后台结构都是mvc模式。controller/module/目录下建立控制的文件,language/module/目录下建立语言文件,数据库操作不一定跟前面的文件结构一样,像扩展模块的数据库操作统一使用model/setting/extension.php文件,这个就不用复制修改了。

比如做一个某个栏目最新产品的模块,文件结构如下,为了方便,建议复制最新文章模块文件并修改。
如新建admin/controller/module/latest1.php,可以复制同一目录下的latest.php文件并修改。

后台管理:
admin/controller/module/latest1.php(类名修改为ControllerModuleLatest1,查找代码中的latest修改为latest1,我想大家应该知道修改哪些latest,比如$this->load->language('module/latest1');这是读入language/chinese或english/latest1.php语言文件,还有应该根据需要增加字段的代码,$this->data['entry_limit'] = $this->language->get('entry_limit');上面加一条$this->data['entry_cateid'] = $this->language->get('entry_cateid');)

admin/language/module/latest1.php(增加$_['entry_cateid'] = '产品分类ID:'; 标题显示修改为指定分类最新商品,要不然后台管理中安装后显示两个同名。)

因为模块统一使用admin/model/setting/extension.php操作数据库,因此数据库部分不用管了。
opencart把所有模块中使用的字段统一保存到一个表中。

admin/view/template/module/latest1.tpl(这是设置的界面,查找latest修改为latest1,大致分两个部分
,一个是添加模块部分function addModule(),一个是列表显示部分,参考设置[limit]字段部分,在上面增加[cateid]字段部分,应该不难吧?

最后后台管理->扩展功能->模块配置->指定分类最新商品 安装,然后编辑->设置栏目ID(商品分类->编辑上鼠标放上去,状态栏中可看到category_id)

前台显示:

catalog/controller/module/latest1.php(查找latest修改为latest1)
代码 $data = array( 是传递到产品查询函数的参数,这里增加 'cateid' => $setting['cateid'],
代码 $results = $this->model_catalog_product->getProducts($data); 是调用产品查询的函数
把getProducts修改为getProducts1,然后在 catalog/model/catalog/product.php文件中复制 getProducts函数新建getProducts1函数,然后在这个函数中得到参数$data['cateid'],修改SQL语句,, 调试的时候要删除 system/cache/目录下的缓存文件才能看到修改后的结果。

catalog/language/chinese或englisth/module/latest1.php

catalog/view/theme/default/template/latest1.tpl(前台显示)



回复 支持 反对

使用道具 举报

板凳
发表于 2012-7-1 22:01:30 | 只看该作者
未审核的主题怎么修改呢? 郁闷。。。

catalog/controller/module/latest1.php中的 $data=array(部分修改为'filter_category_id' => $setting['cateid'],    getProducts函数就不用该了,product.php文件也不用修改。
回复 支持 反对

使用道具 举报

地板
发表于 2014-10-31 01:24:27 | 只看该作者
admin/view/template/module/latest1.tpl(这是设置的界面,查找latest修改为latest1,大致分两个部分
,一个是添加模块部分function addModule(),一个是列表显示部分,参考设置[limit]字段部分,在上面增加[cateid]字段部分,应该不难吧?

请问 一个是添加模块部分function addModule(),一个是列表显示部分,参考设置[limit]字段部分,在上面增加[cateid]字段部分   这2个部分能写详细些吗? 我弄了老是出错,不知道是不是哪里改错了
回复 支持 反对

使用道具 举报

5#
发表于 2014-10-31 10:23:08 | 只看该作者
本帖最后由 sttobaby 于 2014-10-31 10:25 编辑
bossbbx 发表于 2012-7-1 22:01
未审核的主题怎么修改呢? 郁闷。。。

catalog/controller/module/latest1.php中的 $data=array(部分修改 ...


你好,我弄出来了,不过不知道为什么后台分类的名称没有出来,错位了一个,请问这个怎么解决啊?谢谢了

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

QQ|手机版|OpenCart - 中文官方网站 ( 蜀ICP备09033774号|人工智能

GMT+8, 2024-6-1 17:14 , Processed in 0.061699 second(s), 24 queries , Gzip On.

快速回复 返回顶部 返回列表