热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

magento2所需要php扩展,magento2.X主题和插件的安装教程

很长一段时间,我困惑于如何安装一个magento的主题和插件,可能是长时间对wordpress的琢磨而不能自拔了。好的,今天就跟大家讲讲&

9d95ee6338d8713bd6ed81622b399d9b.png

很长一段时间,我困惑于如何安装一个magento的主题和插件,可能是长时间对wordpress的琢磨而不能自拔了。好的,今天就跟大家讲讲:magento2.1主题和插件的安装教程

我们先去网络上下载对应的主题和插件,比如主题:yume主题,插件比如:Banners插件

下载下来后,我们也不要急着安装,先解压看下文件结构,因为很多主题或者插件结构需要对应好,才能被检测到。

主题我们需要看registration.php这个文件,插件也是registration.php这个文件,里面有写这个文件的目录是怎么样的。

我们就以yume这个主题来说,这里需要说明的是,我们下载主题后,有些主题很简单,可能什么也没有,这个一般不怎么靠谱,主题应该是有很多个文件夹和必要的配置文件,以及说明文件组成的:registration.php、theme.xml、config.xml、composer.json等,这些文件应该都要有。如果觉得下载主题不靠谱我们可以打开magento默认的主题luma和下载主题对应一下,看下这些文件是否差不多,毕竟主题不一样,文件也有所差异,但是这些必要的文件应该是需要有的。好了,我们检查好了这一步后,我们就能够进行主题目录的定位,我们下载下来的主题应该放在magento的哪个目录下呢?

注意:以下的内容会很重要,需要仔细阅读。

magento1和magento2可能有点不一样,我这里是以magento2.1作为讲解的。registration.php文件夹里的代码如下:

* Copyright © 2015 Magento. All rights reserved.

* See COPYING.txt for license details.

*/\Magento\Framework\Component\ComponentRegistrar::register(\Magento\Framework\Component\ComponentRegistrar::THEME,

'frontend/Venustheme/yume',__DIR__);

说明这个是在magento根目录/app/design/frontend/Venustheme/yume,所以我们下载主题的名字应该是Venustheme文件夹,里面再有一个yume文件夹,最后就是一些文件夹和文件了,这就是主题的文件结构,可能大家还是有点困惑,大家不妨把luma主题用来做对比,luma的registration.php文件的代码如下:

* Copyright © 2013-2017 Magento, Inc. All rights reserved.

* See COPYING.txt for license details.

*/\Magento\Framework\Component\ComponentRegistrar::register(\Magento\Framework\Component\ComponentRegistrar::THEME,

'frontend/Magento/luma',__DIR__);

luma主题文件虽然在magento根目录/vendor/magento/theme-frontend-luma下,这个Magento是默认的,所以如果要重写,可能就在这个文件夹里添加代码。

起初,我还把Venustheme这个主题放了一份在magento根目录/vendor/magento/下,并且命名为magento根目录/vendor/magento/theme-frontend-yume,不知道这样是否可行,大家可以去折腾下,反正我是很肤浅的这样复制粘贴,说明我根本没有理解透彻这个主题的设计。当然我这个做法可以用来备用,万一有些个别情况,有的人根据上面的指导还是不行的话,或许我这种拙劣的经历会有一些启发。

选择好了,然后查看没啥问题后,就上传,然后就运行命令:

magento setup:upgrade

magento setup:di:compile

这样进入到后台—内容—主题,这个时候你就会看到新添加的yume就出现了。

2120.jpg

然后进入到配置那里,把默认的luma变成新添加的主题,然后刷新前台,就会发生样式上的变化,当然这个仅仅是用作测试,如果用于生产环境,最好找个上好的主题,进行安装配置即可。

如果我们想变回默认主题也很简单,直接在内容—配置—选择默认的主题—进行主题切换—选择luma主题。

好了,我们再来说说安装插件吧

我们下载好了插件的文件后,也是一样的,先看registration.php文件,里面的代码大致如下,这里我以banners这个插件作为讲解。

\Magento\Framework\Component\ComponentRegistrar::register(\Magento\Framework\Component\ComponentRegistrar::MODULE,

'FME_Banners',__DIR__);

虽然我们下载下来的名字是fme-banners-1.0.4,但是我们从上面的代码可以看出插件的文件名应该是FME,然后里面有个Banners文件夹,再里面才是放源码的。这个很重要,这些目录具体怎么样,是由这个registration.php决定好了的。明白这个后,我们就需要解决:插件应该放哪里呢?哪个目录?

magento2.1的插件目录是:magento根目录/app/code(如果没有这个目录,就自己新建一个)/插件位置,比如我要放FME这个插件,那么它的目录就是magento根目录/app/code/FME,

然后我们就在magento根目录下运行命令:

php bin/magentomodule:status//查看插件情况

这个时候会在最后显示有个没有被启用的插件:FME_Banners

然后就是启用这个插件,运行命令:

php bin/magentomodule:enable FME_Banners//启用特定的插件的写法

如果我们一次性上传了好几个插件的话,然后我们要全部启用这些,该怎么办,我们就不用一个一个的运行启用了,直接运行如下命令:

php bin/magentomodule:enable--all//启用所有插件

启用好了后,我们就运行如下命令:

php bin/magento setup:upgrade

更新一下magento,有的时候可能还要运行一下如下命令:

php bin/magento setup:di:compile

完毕后,进入magento后台,就可以看到安装好的扩展了。

这里会有一个特殊情况,比如我们在安装插件的时候,我们已经安装了Mageplaza,这个是一个系列的,就是类似wordpress中的woocommerce的一样,我们可以在magento后台看到Mageplaza这个区块的内容,也有Mageplaza Marketplace,如果我们在这里上面下载的插件的话,当然我们还是要想前面说那样把插件的文件结构确定好,然后命好名,上传的路径不是magento根目录/app/code,而是magento根目录/app/code/Mageplaza,道理很简单,它的和注册文件为:

\Magento\Framework\Component\ComponentRegistrar::register(\Magento\Framework\Component\ComponentRegistrar::MODULE,

'Mageplaza_Seo',__DIR__);

所以插件的名字就是应该是:Seo,然后在Seo文件夹下就是插件的源代码。这个值得大家注意,事实上,我下载的这个插件(seo_v1.4.1.2_ce_mageplaza)目录结构如下

718.jpg

所以很多时候,不能下载下来就觉得万事大吉了,我们还得看下插件的文件结构,再决定下一步怎么做。相信将来还会遇到更复杂的情况,只要保持冷静,对比,尝试,观察,我们就能举一反三。

有的时候,我在安装一个扩展的是,是一个PDF的扩展,然后报错了,说是没有一个文件或是某个函数什么的,我们在安装插件出错了怎么办,不要着急,根据以下方法走就行。

如果想彻底删除的话,直接删除有问题的插件的文件,就是在magento根目录/app/code/下的需要删除的插件的文件夹。然后更新一下magento,运行命令:

php bin/magento setup:upgrade

或者是,不删除但是我们直接禁用这个有问题的插件,这里我以插件FME_Banners为例,运行命令:

php bin/magentomodule:disable FME_Banners

这样就禁用了这个插件了,然后更新一下,运行命令:

php bin/magento setup:upgrade

好了,以上就是magento2.1版本中的插件和主题的安装讲解.

【转载来源】http://www.habotalk.com/magento/1967.html



推荐阅读
  • 本文介绍了如何通过安装和配置php_uploadprogress扩展来实现文件上传时的进度条显示功能。通过一个简单的示例,详细解释了从安装扩展到编写具体代码的全过程。 ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 本文概述了在GNU/Linux系统中,动态库在链接和运行阶段的搜索路径及其指定方法,包括通过编译时参数、环境变量及系统配置文件等方式来控制动态库的查找路径。 ... [详细]
  • 利用Docker部署JupyterHub以支持Python协同开发
    本文介绍了如何通过Docker容器化技术安装和配置JupyterHub,以实现多用户的Python开发环境,特别适合团队协作场景。 ... [详细]
  • Docker基础入门与环境配置指南
    本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ... [详细]
  • C/C++ 应用程序的安装与卸载解决方案
    本文介绍了如何使用Inno Setup来创建C/C++应用程序的安装程序,包括自动检测并安装所需的运行库,确保应用能够顺利安装和卸载。 ... [详细]
  • IntelliJ IDEA配置微服务启动显示
    通过编辑IntelliJ IDEA的workspace.xml文件,可以实现微服务启动对象的显示。具体步骤包括定位并修改workspace.xml中的RunDashboard部分。 ... [详细]
  • 版权所有 © 2015 CSDN博客,保留所有权利。本文档详细介绍了使用C语言编写计算圆柱体表面积的程序,包括代码实现及运行结果。 ... [详细]
  • 使用jQuery与百度地图API实现地址转经纬度功能
    本文详细介绍了如何利用jQuery和百度地图API将地址转换为经纬度,包括申请API密钥、页面构建及核心代码实现。 ... [详细]
  • 本文介绍如何通过Java代码调用阿里云短信服务API来实现短信验证码的发送功能,包括必要的依赖添加和关键代码示例。 ... [详细]
  • 本文详细介绍了Socket在Linux内核中的实现机制,包括基本的Socket结构、协议操作集以及不同协议下的具体实现。通过这些内容,读者可以更好地理解Socket的工作原理。 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • Python网络编程:深入探讨TCP粘包问题及解决方案
    本文详细探讨了TCP协议下的粘包现象及其产生的原因,并提供了通过自定义报头解决粘包问题的具体实现方案。同时,对比了TCP与UDP协议在数据传输上的不同特性。 ... [详细]
author-avatar
流浪者时空
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有