很长一段时间,我困惑于如何安装一个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就出现了。
然后进入到配置那里,把默认的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)目录结构如下
所以很多时候,不能下载下来就觉得万事大吉了,我们还得看下插件的文件结构,再决定下一步怎么做。相信将来还会遇到更复杂的情况,只要保持冷静,对比,尝试,观察,我们就能举一反三。
有的时候,我在安装一个扩展的是,是一个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