首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Prestashop中类似制造商功能的代码结构选择

Prestashop中类似制造商功能的代码结构选择
EN

Stack Overflow用户
提问于 2012-08-05 01:52:40
回答 1查看 937关注 0票数 0

我目前正在为一家艺术画廊开发一个在线销售艺术品的网站。我需要开发一些代码来收集和显示有关艺术家的信息(传记,邮件,电子邮件,展览日期,...)。我首先尝试使用制造商功能,只修改翻译,将“制造商”替换为“艺术家”,但我很快意识到我是有限的。我不需要将艺术家与其地址相关联,我需要额外的信息。问题是,我不知道什么是最好的方式来实现这一点,同时保持我的代码干净,并使prestashop升级容易完成。

我想我需要创建新的数据库表,如下所示(展览日期,尚未实现):

代码语言:javascript
运行
复制
CREATE TABLE `artist` (
  `id_artist` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL,
  `date_add` datetime NOT NULL,
  `date_upd` datetime NOT NULL,
  `active` tinyint(4) NOT NULL DEFAULT '0',
  `email` varchar(255) DEFAULT NULL,
  `phone` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id_artist`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


CREATE TABLE `artist_lang` (
  `id_artist` int(11) NOT NULL,
  `id_lang` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `description` text NOT NULL,
  `short_description` text NOT NULL,
  `meta_title` varchar(128) NOT NULL,
  `meta_keywords` varchar(255) NOT NULL,
  `meta_description` varchar(255) NOT NULL,
  PRIMARY KEY (`id_artist`,`id_lang`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

我应该让它成为一个模块,还是直接在核心类中添加艺术家模块和控制器?如果我这样做,我将不得不覆盖产品类。既然我不需要制造商,我应该重写制造商类吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-06 01:02:48

我在Prestashop forum上问了同样的问题,得到了很好的建议,如果有人有同样的问题,我会在这里总结。

没有办法修改核心类,但应该尽可能多地使用override。

后台功能

如< question.

  • Create an

  • Artist class in overrides/classes中所述,创建数据库表,方法是复制-粘贴ManufacturerCore类,并使用manufacturer替换提及的artist,以及将附加字段指定为instance an overrides/controllers类,并通过artist
  • Override <overrides/controllers>D18类替换提及manufacturer,并添加id_artistartist_name作为实例变量。修改以下函数,使产品与其艺术家链接:__construct,在getProducts
  • Create中添加和编辑getFieldsArtistsAdmin子类,以便后台可用于在后台添加/编辑选项卡(employees AdminTab admin/tabs -> ->
  • admin/ajax.php )
  • Modifyadmin/ajax.php以便可以从back-office
  • Modify ProductsAdmin in admin/tabs中查询艺术家,以便用户可以在为artists选项卡添加/编辑徽标时选择艺术家,并将其复制到D40<中/code>并img/admin/artists.gif
  • Handle config/defines.inc.php中的图像文件夹:

define('_ARTI_DIR_',_PS_IMG_.'ar/');define('_PS_ARTI_IMG_DIR_',在img中_PS_IMG_DIR_.'ar/');

  • Crate ar文件夹并为everyone

设置写权限

前台功能(尚未测试,可能缺少一些信息):

使用一个名为getDistributorLink的函数进行

  • Override链接,该函数对getSupplierLink
  • Override工具进行建模,以更新generateHtaccess函数,以包括对供应商重定向进行建模的艺术家的重定向。我使用了3个下划线(___),其中制造商使用1个下划线(_),供应商使用2个下划线(__).
  • Theme文件(模板、css)来支持新的核心文件。
  • 如果您想要在产品页面上显示艺术家,您还可以创建一个挂接extraRight或一个或多个产品页面挂接的模块。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11810760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档