magento2 二次开发如何自定义theme

1.在app\design\frontend下创建自定义Theme文件夹,格式为Vendor/ThemeName,比如TestCompany/test
2.在TestCompany/test目录下创建文件夹和文件如下:
在这里插入图片描述

etc

非必须创建
在此目录下添加view.xml,内容如下:
view.xml可定义一些图片大小

<?xml version="1.0"?>
<!--
/*** Copyright © Magento, Inc. All rights reserved.* See COPYING.txt for license details.*/
-->
<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/view.xsd"><media><images module="Magento_Catalog"><image id="category_page_grid" type="small_image"><width>400</width><height>400</height></image><image id="category_page_list" type="small_image"><width>400</width><height>400</height></image><image id="product_base_image" type="image"><width>1000</width><height>1000</height></image><image id="product_page_image_medium" type="image"><width>1000</width><height>1000</height></image><image id="new_products_content_widget_grid" type="small_image"><width>400</width><height>400</height></image><image id="related_products_list" type="small_image"><width>400</width><height>400</height></image><image id="upsell_products_list" type="small_image"><width>400</width><height>400</height></image><image id="cart_cross_sell_products" type="small_image"><width>400</width><height>400</height></image><image id="wishlist_sidebar_block" type="thumbnail"><width>150</width><height>150</height></image><image id="wishlist_small_image" type="small_image"><width>150</width><height>150</height></image><image id="wishlist_thumbnail" type="small_image"><width>400</width><height>400</height></image></images></media>
</view>

media

可以放比如theme预览图片,非必须

web

内部可定义自己的模版文件,css,js等等
web目录结构如下:
css/source目录下自定义的css都可以放到_extend.less 使用@import ‘global/xxx/xxx’;来导入生效
在这里插入图片描述

registration.php

内容如下:

<?php
/*** Copyright © Magento, Inc. All rights reserved.* See COPYING.txt for license details.*/use Magento\Framework\Component\ComponentRegistrar;ComponentRegistrar::register(ComponentRegistrar::THEME, 'frontend/TestCompany/test', __DIR__);

theme.xml

内容如下

<!--
/*** Copyright © Magento, Inc. All rights reserved.* See COPYING.txt for license details.*/
-->
<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd"><title>Test Company</title><parent>Magento/luma</parent><media><preview_image>media/preview.jpg</preview_image></media>
</theme>

Magento Theme:

default.xml
定义页面container布局,可引入templates/html目录下自定义模版文件
内容如下
自定义模版文件可以访问web/images中图片,路径访问地址可以定义为

<img src="<?php echo $block->getViewFileUrl('images/xxx.gif'); ?>" />

在这里插入图片描述
default.xml文件示例

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"><body><!-- Header -->定义logo,引入内置logo block<referenceBlock name="logo"><arguments><argument name="logo_width" xsi:type="number">800</argument><argument name="logo_height" xsi:type="number">75</argument><argument name="logo_file" xsi:type="string">images/logo.gif</argument></arguments></referenceBlock>**引入Magento_Theme文件夹下的自定义模版文件**<referenceContainer name="content"><container name="custom-content" label="Content" htmlTag="div" htmlClass="row"><container name="right.column" label="Column" htmlTag="div"><block class="Magento\Framework\View\Element\Template" name="custom_block_right" template="Magento_Theme::html/custom_test.phtml" /></container></container></referenceContainer>**删除一些不需要的内置block**<!-- Header - Remove Blocks --><referenceBlock name="header.panel.wrapper" remove="true"/><referenceBlock name="wish-list-link" remove="true" /><referenceBlock name="catalog.compare.link" remove="true"/><referenceBlock name="minicart" remove="true"/><referenceBlock name="top.search" remove="true"/><referenceBlock name="cms_page" remove="true" /><referenceBlock name="navigation.sections" remove="true" /><!--  Footer  --><referenceContainer name="footer"><block class="Magento\Cms\Block\Block" name="footer-block" after="-"><arguments><argument name="block_id" xsi:type="string">footer</argument></arguments></block></referenceContainer><!-- Footer - Remove Blocks --><referenceBlock name="report.bugs" remove="true"/><referenceBlock name="footer_links" remove="true"/><referenceBlock name="store_switcher" remove="true"/><referenceBlock name="copyright" remove="true"/><referenceBlock name="form.subscribe" remove="true"/><referenceBlock name="store.links" remove="true"/></body>
</page>

执行
php bin/magento cache:clean
php bin/magento setup:static-content:deploy -f
使自定义theme生效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/27745.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企企通入选《2023数字化采购发展报告》,持续赋能企业数字化采购

近日&#xff0c;国内知名产业数字化服务平台亿邦智库联合中国物流与采购联合会公共采购分会共同发布了《2023数字化采购发展报告》。 企企通一直以来积极推动企业采购供应链数字化升级和变革&#xff0c;不断通过技术、产品、服务的创新&#xff0c;引领国内采购供应链数字化的…

【DC-DC】AP5193 宽电压降压恒流驱动器 LED电源驱动芯片

产品描述 AP5193是一款PWM工作模式,高效率、外围简单、内置功率MOS管&#xff0c;适用于4.5-100V输入的高精度降压LED恒流驱动芯片。最大电流2.5A。AP5193可实现线性调光和PWM调光&#xff0c;线性调光脚有效电压范围0.55-2.6V.AP5193 工作频率可以通过RT 外部电阻编程来设定&…

麒麟v10部署Nginx

1.解压&#xff1a;tar -xvf nginx-1.18.0.tar.gz 2.进入目录&#xff1a;cd nginx并执行脚本./configure 3.执行make 4.执行make install 5.安装目录在&#xff1a;/usr/local/nginx&#xff0c;然后再进入/usr/local/nginx/sbin启动nginx服务&#xff0c;执行./nginx&a…

Fiddler 抓包工具 手机抓包配置

1. 下载Fiddler 工具阿里云盘分享 2. 安装后进行设置 Tools -->Options 这些设置完后开始手机WLAN 设置 1. 打开手机的“设置” ->“WLAN”&#xff0c;找到你要连接的网络&#xff0c;在上面长按&#xff0c;然后选择“修改网络”&#xff0c;弹出网络设置对话框&…

Linux下九个实用脚本

目录 1.批量创建用户并设置密码脚本 2.查看网卡实时流量脚本 3.nginx访问日志脚本 4.dos防范攻击&#xff08;自动屏蔽攻击脚本&#xff09; 5.监控多台服务器磁盘利用率脚本 6.监控MySQL主从同步异常脚本 7.批量检查网站异常脚本 8.查看服务器资源利用率脚本 9.查找占…

JVM面试题详解

JVM介绍 JVM是什么&#xff1f; JVM由哪些部分组成&#xff1f;运行流程是什么&#xff1f; JVM组成 什么是程序计数器 你能给我详细的介绍Java堆吗&#xff1f; 什么是虚拟机栈&#xff1f; 堆栈的区别是什么&#xff1f; 能不能解释一下方法区 你听过直接内存吗 类加载器 …

在Microsoft Excel中如何快速将上下两行数据合并为一行?

合并单元格是电子表格初学者最常用的选项之一。当一组单元格、行或列需要标题或标签时,合并单元格是一种常用的技术。 合并单元格时,仅保留区域左上角单元格中的值或公式,并将其显示在合并后的单元格中。将丢弃任何其他值或公式,那么如何在新的空白单元格中将两行数据合并…

什么是 XSS 攻击,攻击原理是什么

什么是 XSS 攻击&#xff1f; XSS&#xff08;Cross-Site Scripting&#xff09;攻击是一种常见的 Web 安全漏洞&#xff0c;其攻击目标是 Web 应用程序中的用户&#xff0c;攻击者通过在 Web 页面中植入恶意脚本&#xff0c;从而实现窃取用户敏感信息、篡改用户数据等目的。 …

在Linux下做性能分析2:ftrace

介绍 在我们进一步介绍更多模型分析技巧前&#xff0c;我们先要对基本工具有一些了解。这一篇先介绍ftrace的基本用法。 ftrace在内核的Documentation目录下已经有文档了&#xff0c;我这里不是要对那个文档进行翻译&#xff0c;而是要说明这个工具的设计理念和使用策略。细节…

Collection 集合的遍历

Collection集合的遍历方式主要有三种&#xff1a; 迭代器遍历 增强for遍历 Lambda表达式遍历 我们平时最常用到的 普通for遍历 怎么不见了呢&#xff1f; 这是因为普通for遍历只能用在 List 集合中&#xff0c;我们还需要考虑到 无索引 的 Set 结合 迭代器遍历 迭代器 有一个最…

聊聊用户故事的估算和拆解

这是鼎叔的第六十七篇原创文章。行业大牛和刚毕业的小白&#xff0c;都可以进来聊聊。 欢迎关注本专栏和微信公众号《敏捷测试转型》&#xff0c;星标收藏&#xff0c;大量原创思考文章陆续推出。 对于Scrum和用户故事实践的最大难点&#xff0c;我相信是如何估算用户故事的大…

react报错信息

报错信息 render函数里dom不能直接展示obj对象 取变量记得要有{} https://segmentfault.com/q/1010000009619339 这样在写的时候就已经执行方法了&#xff0c;所以此处用箭头函数&#xff08;&#xff09;》{}才会在点击时执行或者 遍历数据使用map来遍历&#xff0c;使用forea…