Php 对OpenCart主题的简单修改

Php 对OpenCart主题的简单修改,php,phpmyadmin,opencart,Php,Phpmyadmin,Opencart,我正在OpenCart中使用Shoppica主题。我想修改一下分类页面。它给出了一个描述(我在后端输入了该描述)以及随后的产品列表 在category.tpl中,它说: <?php if ($description) echo $description; ?> 但是我想要一个额外的描述,我们称之为描述2。这应该在产品清单之后。 在PhpMyAdmin中,我在*oc\u category\u description*中添加了另一行,并将其命名为description2 手动(所以

我正在OpenCart中使用Shoppica主题。我想修改一下分类页面。它给出了一个描述(我在后端输入了该描述)以及随后的产品列表

在category.tpl中,它说:

<?php if ($description) echo $description; ?>

但是我想要一个额外的描述,我们称之为描述2。这应该在产品清单之后。 在PhpMyAdmin中,我在*oc\u category\u description*中添加了另一行,并将其命名为description2 手动(所以在PhpMyAdmin中)我用文本填充了这个

现在,我将以下内容放在category.tpl文件中:

<?php if ($description2) echo $description2; ?>

但现在我收到一个错误:

未定义变量:中的说明2 /home/../public_html/catalog/view/theme/shoppica2/template/product/category.tpl 在线187


知道我做错了什么吗。我是否需要在其他地方声明它(在另一个文件中?在哪里?

需要了解内置OpenCart的MVC模式

简单地说,您有一个与数据库交互的模型类,一个在上面操作并调用模型方法(数据检索、数据更新、数据插入)的控制器类,并在视图处理输出时将其传递给brwoser(应该是另一个类,但OpenCart只有类似MC的带有模板文件的模型控制器部分)

因此,对于您的问题:您必须修改
catalog/model/catalog/category.php
,并查找名为
getCategory
的方法来检索具体的类别数据。这里的select查询应该是
select*from…
-如果是这样,一切都正常,但如果是
select category\u id,category\u description。。。从…
中,您还必须在此处添加新字段(对不起,我不记得OpenCart中的SQL查询)

另外,编辑
catalog/controller/product/category.php
并查找控制类别数据的部分(调用类别模型)或查找以
$this->data['description']=…]开头的行
并在此处添加新字段,如
$this->data['description2']=


希望这会有所帮助。

需要了解内置OpenCart的MVC模式

简单地说,您有一个与数据库交互的模型类,一个在上面操作并调用模型方法(数据检索、数据更新、数据插入)的控制器类,并在视图处理输出时将其传递给brwoser(应该是另一个类,但OpenCart只有类似MC的带有模板文件的模型控制器部分)

因此,对于您的问题:您必须修改
catalog/model/catalog/category.php
,并查找名为
getCategory
的方法来检索具体的类别数据。这里的select查询应该是
select*from…
-如果是这样,一切都正常,但如果是
select category\u id,category\u description。。。从…
中,您还必须在此处添加新字段(对不起,我不记得OpenCart中的SQL查询)

另外,编辑
catalog/controller/product/category.php
并查找控制类别数据的部分(调用类别模型)或查找以
$this->data['description']=…]开头的行
并在此处添加新字段,如
$this->data['description2']=


希望这会有所帮助。

解释得很好。这是最好的方法,因为在代码中进行快速修复SQL调用是错误的方法。另外1不需要特别了解MVC模式,只是软件没有神奇地将每一列转换为一个变量(用户1409956确实怀疑这一点)。OpenCart完全有可能,即使它实际上使用了MVC模式,也可以将每个数据列作为模板的变量+“不管怎么说,”保罗·格雷戈里说得对。无论如何,尽管我不太满意OpenCART如何处理资源以及要做多少事情才能完成,但我仍然喜欢OpenCART,并将其视为开发人员(以及客户:-客户端)的最好的开源电子商务平台。谢谢唯一一件事:如果我将后端中的任何内容更改为任何其他字段(如描述或元标记),description2字段也会更改(被覆盖),description2字段将再次变为空白。有什么快速的方法可以解决这个问题,或者我应该在category\u form.tpl(在Admin/View//catalog/)中添加
$entry\u description2
?是的,您需要对管理员文件执行非常类似的操作。编辑控制器和模型,但请记住,模型中有一个函数用于写入表,另一个函数用于检索数据。别忘了将您的条目也添加到语言文件中!解释得很好。这是最好的方法,因为在代码中进行快速修复SQL调用是错误的方法。另外1不需要特别了解MVC模式,只是软件没有神奇地将每一列转换为一个变量(用户1409956确实怀疑这一点)。OpenCart完全有可能,即使它实际上使用了MVC模式,也可以将每个数据列作为模板的变量+“不管怎么说,”保罗·格雷戈里说得对。无论如何,尽管我不太满意OpenCART如何处理资源以及要做多少事情才能完成,但我仍然喜欢OpenCART,并将其视为开发人员(以及客户:-客户端)的最好的开源电子商务平台。谢谢唯一一件事:如果我将后端中的任何内容更改为任何其他字段(如描述或元标记),description2字段也会更改(被覆盖),description2字段将再次变为空白。有什么快速解决方法吗,或者我应该在category\u form.tpl(在Admin/View//catalog/)中添加
$entry\u description2
?是的,您需要这样做