SuperAPI AI 工具集

oro-frontend

前端与建站

查看项目

更新于 10-16 01:35

技能介绍

用途:用于 OroCommerce v6.1 前端开发,包括创建自定义主题、覆盖模板、编写 SCSS 样式和配置布局更新。

主题结构:每个主题位于 bundle 的 Resources/views/layouts/ 目录下,包含必需的 theme.yml,以及 config/assets.yml(CSS/JS 注册)和 config/jsmodules.yml(JavaScript 模块路径);public/[theme-name]/ 下放置 scss 与 js。

主题注册:theme.yml 中配置 label、description、parent、groups、rtl_support 等。主题名须匹配正则 [a-zA-Z][a-zA-Z0-9_-:]*,建议使用 kebab-case;OroCommerce 店面父主题为 default,子主题继承 SCSS、模板与 JavaScript。

SCSS 组织:强制按 settings(混入、函数)、variables(配置变量、配色)、components(组件样式,BEM 命名)三目录顺序编译,顺序错误会导致构建失败。跨目录引用受编译顺序限制,如 components 中定义的混入无法用于 variables。变量建议使用 !default 以便子主题覆盖;使用 map.deep-merge() 扩展父级配色,避免直接赋值丢失父级键。

布局更新:使用 YAML 文件在运行时修改布局树,支持 @add、@setBlockTheme、@move、@remove 等动作,可新增块、设置块主题、移动或移除组件。

JavaScript:基于 Chaplin.js 的页面组件通过 data-page-component-module 和 data-page-component-options 属性从服务端渲染的 HTML 初始化;异步加载需在 jsmodules.yml 的 dynamic-imports 中注册模块。

注意事项:Twig 布局块名须以 _widget 结尾,ID 相关块使用下划线前缀,否则模板解析失败;扩展父主题配色时使用 map.deep-merge()。

更多 SCSS 示例、assets.yml、jsmodules.yml、Chaplin.js、模板覆盖、构建命令及前台与后台说明见 references/frontend-patterns.md;布局动作完整参考见 references/layout-actions.md。