🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 前端模板开发教程 : ***** **最佳入门:** https://docs.magento.com/user-guide/cms/widget-new-products-list.html ![](https://img.kancloud.cn/76/64/7664262641d7d8c5c08266035dd786be_950x388.png) ***** **前端设计的理论:** 参考[Magento 2 – Alan Storm](https://alanstorm.com/category/magento-2/), 这是行业内大牛写的教程:《No Frills Magento Layout》,线上看:https://kdocs.cn/l/ckbQR4GYAc9o [金山文档] No Frills Magento Layout.pdf > 有助于理解magento模板机制: > XML ,layout,container, block, widget, page 等概念。 ***** **国内资料推荐:** https://www.kancloud.cn/zouhongzhao/magento2-in-action/629747 ![](https://img.kancloud.cn/7e/ef/7eeff123bb64ac28cd76d039b5760c75_720x460.png) 页面布局: https://bbs.mallol.cn/question/magento2-general-layout-design-description/ ***** ***** ### **安装主题:** 安装方法参考:https://www.kancloud.cn/zouhongzhao/magento2-in-action/672702 大致流程如下: > If you are using Magento 2.4.x then you need to extract **solwin-freego-theme-2.4.x.zip**file.4. Copy the **app** and the **pub** folder and paste it into your magento ROOT directory. > 5. Run upgrade command as specified: **php bin/magento setup:upgrade** > 6. Run deploy command as specified: > For Magento 2.0.x and 2.1.x:**php bin/magento setup:static-content:deploy** > For Magnento 2.2.x, Magento 2.3.x and Magento 2.4.x:**php bin/magento setup:static-content:deploy -f** > 7. Clear the cache either from the admin panel or command line **php bin/magento cache:clean** **这里推荐2个简单模板入门:** 代码和样式设计都不错的免费主题,比较适合二次开发,代码简洁易懂。参考: 1,https://www.solwininfotech.com/documents/magento2/freego/#pages_configuration 2,https://www.hiddentechies.com/documentation/magento2/bizkick/#customization ***** ***** ### **注意性能:** You might be surprised, but your website theme can also significantly slow down your website, especially if it has a lot of widgets, sliders and custom blocks. Just imagine how much time it will take to load all of them. 很多时候magento卡慢,是因为我们自己写的模板的性能问题。 ***** ***** # 解读模范主题: 1,**老邹模板**:https://gitee.com/zouhongzhao/magento2-action-theme-demo 介绍了引入内容的几种形式,通用的代码注入,必读代码。 ***** 2,**solwininfotech模板**,强烈推荐学习: https://www.solwininfotech.com/documents/magento2/freego/#pages_configuration demo地址: http://magedemo.solwininfotech.com/magento2/freego/theme/ a,全部取用覆盖原来模板的方法,简单直接高效。 b,cpanel作为控制面板,容易定制配置。 ***** **3, bizkick模板:** bizkick是纯模板,是solwininfotech模板的简单版,没有插件的。 https://www.hiddentechies.com/documentation/magento2/bizkick/#customization ![](https://img.kancloud.cn/5c/39/5c39d3bb6ca0eb67155dc1c3665fdeb2_1592x451.png) ***** ## 前端模板内容主要是什么形式: **1,管理后台配置形式(复杂)** a,新建page,插入widget内容 b,自定义页面layout模板 c,自定义 product_widget的 样式 ![](https://img.kancloud.cn/ab/99/ab99dee5a07e818b1a893bcffe026df6_947x261.png) [Using Layout Updates | Magento 2.3 User Guide](https://docs.magento.com/user-guide/v2.3/design/layout-update-place-block.html) [How to add Custom Layout Update in Magento 2.3.4+ - Olegnax](https://olegnax.com/documentation/magento-2/how-to-add-custom-layout-update-in-magento-2-3-4/) ***** **2,代码模板形式 【推荐】** a, 内容直接写在代码, block+template ![](https://img.kancloud.cn/29/1b/291bed6a23c4a4d56f639ace42941645_1432x544.png) b, 自定义页面layout模板 c, 自定义 product list 的循环和样式 ![](https://img.kancloud.cn/de/2f/de2fda072951578c94c4c7a67d41050c_1639x832.png) ***** ### 3,Widgets小插件(很少用) : 写好block , 模板,后台可配置选项,注入到 update layout 各种位置。作用:例如自定义内容注入页面,跟踪埋点注入等。 https://docs.magento.com/user-guide/cms/widget-static-block.html [Custom widget | Adobe Commerce Developer Guide (magento.com)](https://devdocs.magento.com/guides/v2.4/ext-best-practices/tutorials/custom-widget.html) ***** # 案例演示: 首页内容:后台编辑器自定义 block Widget: ![](https://img.kancloud.cn/bd/7e/bd7e9f0f63c1283485e213d15ac37cab_1583x1053.png) 自定义内容块有 **block_id 类的静态内容** , {{widget type="Magento\\Cms\\Block\\Widget\\Block" template="widget/static\_block/default.phtml" block\_id="home\_banner"}} 静态内容在管理后台修改: ### List of default FreeGo home page static block name * Home banner Block * Home Advertisement 1 * Home Advertisement 2 * Home Blogs * Home Testimonials * Home Brands * Footer Our services * Footer Theme Features ***** **product_widget类的动态内容**: {{widget type="Magento\\Catalog\\Block\\Product\\Widget\\NewWidget" display\_type="new\_products" show\_pager="1" products\_per\_page="5" products\_count="10" template="product/widget/new/content/new\_grid.phtml" cache\_lifetime="20" page\_var\_name="allproduct"}} ![](https://img.kancloud.cn/ef/46/ef4650c5419f1f97dad02c755c9f7b72_1590x746.png) ***** ***** **header 和 footer 内容 管理后台配置化**: ![](https://img.kancloud.cn/a1/1b/a11b49cfd19b73e4cb731b9573b7cef6_1083x978.png) 后台配置选项option: 在 插件的system.xml 配置 则可。 ~~~ //配置好,模板可以调用: $scopeConfig = $objectManager->create('Magento\Framework\App\Config\ScopeConfigInterface'); $categoryId = $scopeConfig->getValue('demo/abc/key',\Magento\Store\Model\ScopeInterface::SCOPE_STORE); ~~~ ***** **自定义product widget 模板(选)**: ![](https://img.kancloud.cn/89/94/8994fd39ed68e9e7e5b07aa1e5159090_1139x626.png) \Catalog\etc\widget.xml 配置模块模板,自定义样式: *****