任何开源框架的成功都取决于某些因素,而可扩展性是其中的重要因素之一。 它使社区可以添加新功能并丰富其核心功能,从而产生非常强大的最终产品。 当然,这也是开发自定义扩展的必备功能。
在本文中,我们将看到如何通过实现基于XML的OCMOD扩展来更改OpenCart框架的核心文件。 它的许多功能是从其前身vQmod系统中借用的。 实际上,它是一个简单得多的系统,与vQmod相比,提供的功能更少。 话虽如此,它涵盖了所有重要的替换模式。
OCMOD系统是基于XML的搜索和替换系统。 您按照OCMOD的约定定义XML文件,其余的工作将由XML文件完成。 因此,我们可以说您可以更改核心框架中的任何文件!
让我们列出几个示例,以了解其功能:
- 在文件中的任何特定行之前插入一段代码。
- 用您的自定义代码块替换代码块。
- 使用regexp在文件中找到一个字符串,然后将其替换为另一个字符串。
- 更改OpenCart数据库的架构。
- 还有很多...
如您所见,这是您可以使用OCMOD进行的大量操作的列表。 另外,强烈建议不要使用它来直接修改核心文件,而是使用它。
在下一节中,我们将继续创建一个简单的OCMOD模块以进行演示。 我假设您使用的是最新版本的OpenCart。
OCMOD如何工作
您可以通过两种不同的方式创建和安装OCMOD扩展。 您需要构建一个扩展名为“ .ocmod.zip”的zip文件,或者另一种方法是仅创建一个扩展名为“ .ocmod.xml”的XML文件。
压缩文件选项
zip文件的选项还允许您包含其他几个文件,因此您还可以执行其他操作,例如更改数据库架构,将新文件/目录上传到OpenCart安装等。让我们看看哪些选项可用使用OCMOD扩展的zip版本时。
- upload:此目录下的内容将原样复制到OpenCart根目录。
- install.sql:在此文件中,您可以包括SQL查询以更改数据库。
- install.php:在此文件中,您可以包括定制代码,而修改代码需要该PHP代码。
- install.xml:这是最重要的文件,其中包含XML修改代码。
当然,创建上面列出的每个文件/目录不是强制性的,但是必须创建install.xml
文件以确保可以安装OCMOD扩展名。
XML文件选项
这是创建OCMOD扩展名的一种简单得多的方法-您只需要创建一个扩展名为“ .ocmod.xml”的XML文件即可。 我们可以说它与install.xml
文件相同,并且包含我们在上一节中讨论过的XML修改代码。
为简单起见,我们将使用后面的选项,并在下一部分中创建OCMOD扩展。
创建OCMOD模块文件
作为开发人员,您经常会被安排去改变核心文件。 因此,我们将以一个真实的示例来说明如何使用OCMOD扩展来解决此问题。
假设您要更改标题在产品详细信息页面上的显示方式。 以下代码负责为产品详细信息页面分配正确的标题。 您可以在catalog/controller/product/product.php
的文件中找到它。
$data['heading_title'] = $product_info['name'];
您想要这样的东西:
$data['heading_title'] = strtoupper($product_info['name']);
让我们看看如何使用OCMOD扩展来实现这一目标。 创建具有以下内容的product_title.ocmod.xml
文件。
<?xml version="1.0" encoding="utf-8"?>
<modification>
<name>Product Title Modification</name>
<code>Code_Tutsplus_Product_Title</code>
<version>1.0</version>
<author>Code Tutsplus</author>
<link>http://code.tutsplus.com</link>
<file path="catalog/controller/product/product.php">
<operation>
<search><![CDATA[
$data['heading_title'] = $product_info['name'];
]]></search>
<add position="replace"><![CDATA[
$data['heading_title'] = strtoupper($product_info['name']);
]]></add>
</operation>
</file>
</modification>
如您所见,大多数标签是不言自明的。 最重要的标记是<file>
,它定义将在其上执行操作的文件名。 <search>
标记用于搜索我们要查找的代码,最后我们使用<add>
标记注入代码。
从后端安装模块
现在,我们已经完成了修改文件,让我们看看如何从OpenCart后端安装它。 转至后端,然后导航至Extensions> Extension Installer 。 单击上载按钮,然后选择我们在上一节中创建的文件。 如果一切顺利,您应该会看到一条成功消息。
导航到Extensions> Modifications ,您应该会在该页面上看到OCMOD扩展名。
![修改清单页面](https://cms-assets.tutsplus.com/uploads/users/413/posts/25547/image/the-new-modification-system-in-opencart-2-install-extension.png)
这意味着您已经成功安装了扩展! 现在,只需单击右上方的刷新图标,OpenCart就会检测到它,并准备将其应用于前端。
在下一节中,我们将浏览前端,以了解它是否适当地应用于了产品详细信息页面。
前端测试
转到前端,然后导航到任何产品详细信息页面。 您应该可以看到产品标题现在大写了。
![前端演示](https://cms-assets.tutsplus.com/uploads/users/413/posts/25547/image/the-new-modification-system-in-opencart-2-front-end-demo.png)
尽管这是演示OCMOD强大功能的非常简单的示例,但是您可以使用此实用程序做更多的事情,并在需要时更改核心文件。
结论
今天,我们讨论了OpenCart 2中的新修改系统,并通过了整个过程来演示如何使用它来更改OpenCart的核心文件。 随时发布您的查询!
翻译自: https://code.tutsplus.com/tutorials/the-new-modification-system-in-opencart-2--cms-25547