【问题标题】:Does template hierarchy work the same in magento as child themes do in wordpress模板层次结构在 magento 中的工作方式是否与子主题在 wordpress 中的工作方式相同
【发布时间】:2011-06-30 09:04:01
【问题描述】:

我是 magento 的新手,我对主题感到困惑。我买了一个主题并安装了它,现在我需要进行一些更改。

在 wordpress 中 ...(我已经习惯了)此时我要做的是制作一个子主题(本质上是一个包含少量代码的 css 文件) .... 并且该子主题的任何更改都将覆盖父主题仅在该区域,而父主题将控制其他所有内容,优点是在更新主题时我不会需要维护一个“黑客列表”并重新实现我的所有修改。

然而,卖给我主题的人并没有提到这样的事情,并建议简单地编辑主题本身,尽管事实上 magento 有一个“主题层次结构”

所以任何人都可以向我解释一下,模板层次结构在 magento 中的工作方式是否与子主题在 wordpress 中的工作方式相同......原始下载版本的开发人员

【问题讨论】:

  • 他们的主题是否位于单独的包中?换句话说,它是驻留在app/design/frontend/default 还是app/design/frontend/theirpackagename

标签: wordpress-theming magento


【解决方案1】:

magento 中的模板层次结构与 wordpress 中的子主题一样吗

没有。

更新主题的程序与保留网站开发人员对原始下载版本所做的主题更改有何不同

从底部开始,Magento (post 1.4.1.1) 有一个主题文件夹在

app/design/frontend/base/default

这是 Magento 查找任何特定模板文件的最终位置。只有知道为什么要在其中编辑/添加文件的人才能在其中编辑或添加文件。甚至他们中的大多数都不应该。

接下来(这很令人困惑,所以请注意,如果您感到困惑,请不要感到难过),Magento 有一个 默认 主题的概念。这是您在

中配置的主题名称
System -> Configuration -> Design -> Themes -> Default Theme

这个默认文件夹是您可以放置​​基本主题的地方。如果您输入值theirtheme,Magento 会在

中查找主题模板和布局文件
app/design/frontend/default/theirtheme/template
app/design/frontend/default/theirtheme/layout

接下来,主题由

  • 布局 XML 文件
  • 模板
  • 翻译文件
  • “皮肤”文件(位于应用/设计层次结构之外)

每一个在

中都有一个配置区
System -> Configuration -> Design -> Themes

因此,假设您使用值 mytheme 配置了 Templates 配置值,并且如上所述将您的 Default 设置为 theirtheme。 Magento 会首先在

中查找 phtml 模板文件
app/design/frontend/default/mytheme/template/path/to/file.phtml

如果没有找到,它会查找您配置的默认主题

app/design/frontend/default/theirtheme/template/path/to/file.phtml

最后,如果在任何一个地方都没有找到,它会在最后一次检查一个

app/design/frontend/base/default/template/path/to/file.phtml

因此,听起来您想要做的是将您下载的主题设为默认主题,然后配置一个自定义文件夹,您可以在其中添加更改。

其他说明

中的frontend这个词
app/design/frontend

是一个区域。一个区域大致对应于一个 Web 应用程序。前端区域是购物车,adminhtml 区域是管理控制台。

中的第一个default
app/design/frontend/default

设计包文件夹。设计包是主题的集合。这通常会引起混淆,因为默认包与默认主题无关,但它们共享相同的,嗯,默认名称。

最后,根据您的主题供应商告诉您的内容,Magento 仍然是一个年轻的平台,而且还在不断变化中,此类事情的最佳实践仍在自我整理中。通常由您决定利用 Magento 各种系统的最佳方式。

【讨论】:

  • 谢谢,我已经完成了这些示例;我可以问一下,Magento 中的层次结构似乎有两个目的,一个是如果文件意外丢失,则推迟到不同的主题,但第二个是我可以故意添加“自定义文件夹”,因为你在层次结构中称它为更高,并且它从层次结构下面的文件中接管,如果找到则更改输出,如果没有则更改输出....正确吗?因此,如果我将单个 css 文件放在仅包含一行的自定义文件夹中,例如 body{background:red},那么该行将优先于层次结构中的任何 body{background:}
  • 主题系统简单控制加载哪些特定文件。像 CSS 级联规则这样的应用是中性的。
  • 根据 magento,如果我想创建一个自定义主题,我应该只复制我需要更改的文件(小心保留目录结构)我尝试了这个,它与主要的styles.css文件;但是我无法理解的是它停止显示该css文件中引用的图像....如果magento网站是正确的,那么我应该能够仅使用正确目录结构中的css文件创建自定义主题,但似乎我还必须复制该 css 文件引用的图像文件 - 你能评论一下吗?再次感谢您的建议
  • 您是一名专业的 CSS 开发人员。看看 Magento 在做什么并弄清楚。
  • ???抱歉,我不是故意懒惰的-我已经花了几个小时了-magento的文档充满了难以理解的英语略差(在我看来)....不要担心,尽管我会弄清楚并再次感谢您的宝贵意见帮助
猜你喜欢
  • 1970-01-01
  • 2011-10-09
  • 2013-10-24
  • 2020-09-29
  • 1970-01-01
  • 1970-01-01
  • 2019-05-07
  • 1970-01-01
  • 2015-06-07
相关资源
最近更新 更多