【问题标题】:magento create own package or use defaultmagento 创建自己的包或使用默认值
【发布时间】:2012-09-24 16:12:10
【问题描述】:

我喜欢创建一个新包的主要原因是它允许您在商店主题和默认捆绑的 Magento 主题之间保持清晰的分离。另一方面,大多数扩展将布局和模板文件安装到 app/design/frontend/default/default/ 并且如果您的主题安装在默认包下,magento 将找到扩展前端文件,否则您必须始终将扩展文件复制到 app/design/frontend/package/default/。所以使用你自己的包需要做更多的工作。

我很想知道我是否遗漏了其他任何东西,那么在 Magento 中创建自己的主题包而不是使用默认包有什么好处?

【问题讨论】:

  • 我也是。它是 Magento 认证学习指南中的一个问题,我的小组中没有人真正有明确的答案 - 我们得出的结论是,除了让您更容易组织和分离您自己的主题之外,没有任何真正的好处。
  • 对于我们的内部模块,我们使用默认/默认系统,但始终将文件保存在该系统(布局、模板)下的目录中,以避免与其他模块或将来添加的 magento 发生任何文件名冲突。跨度>
  • 我认为 package 对于开发主题的公司来说可能很方便,可以将他们的主题分组并将它们与其他主题分开。无论如何,主题/皮肤机制将在 Magento 2 中(并且部分是)重新设计。
  • 感谢大家的意见。非常感谢。

标签: magento themes installation packages


【解决方案1】:

首先,创建一个新包是 Magento 官方用户指南需要做的事情。

http://info.magento.com/rs/magentocommerce/images/MagentoDesignGuide.pdf

它是这样说的: “请忽略指示您在默认设计包中创建自定义主题或直接在默认/默认目录中编辑文件的遗留 Magento 说明和教程。相反,为您的主题提供最佳升级路径的方法和防止意外更改的最大措施是创建一个新的设计包并在其中创建您的自定义主题。”

我个人创建新包的逻辑是,如果 Magento 需要很少的商店视图并且它们存在差异,我需要有自己的“默认”主题,这正是我通过创建自己的包得到的(Magento 将查找文件在自定义设计包中的 my_theme 主题中,然后在默认主题中,然后回退到基本包中)

【讨论】:

  • 非常正确,谢尔盖。此外,官方建议将自定义模块模板和布局文件放在 base/default 中适当的命名空间中。
  • 谢谢,本。我被教导将所有自定义模块模板转移到基本/默认和模块代码从“本地”到“社区”池(不幸的是,即使是一些最知名的模块开发人员也将他们的扩展放在本地文件夹中,没有机会自定义他们的分机没有更新问题),因为定制和回退过程。
  • +1。社区扩展的数量非常烦人,这些扩展仅在默认包中随布局和模板文件一起提供,并且自述文件说将我移至您的包/主题。
  • 感谢大家的意见。非常有价值的信息。
【解决方案2】:

如果您使用默认/默认,并且您使用的第三方扩展将其文件置于默认/默认中,那么您无法覆盖这些文件 - 您必须直接编辑它们。

所以,通过

  1. 修复供应商/上游分支中的第三方扩展
  2. 使用您自己的包

您只能覆盖您的包中需要的模板/布局。

【讨论】:

    【解决方案3】:

    /app/design 和 /skin 两个文件夹是相同的(可以说是镜像)。将所有的 css、图像文件保存在 /skin/your_theme 目录下,将布局的 .phtml 文件保存在 /app/design/your_theme 文件夹中。

    【讨论】:

      【解决方案4】:

      从我的角度来看,默认/默认包的设计很糟糕。 如果您使用自己的包,则扩展不能使用您的默认目录(?对吗?)。 我建议添加一个字段 default-package。

      我现在使用这个解决方法 - config.xml:

          <core>
                  <rewrite>
                      <design_package>Your_Extension_Model_Design_Package</design_package>
                  </rewrite>
          </core>
      

      模型/设计/Package.php

          class Your_Extension_Model_Design_Package extends Mage_Core_Model_Design_Package
          {
          /**
          * Use this one to get existing file name with fallback to default
          *
          * $params['_type'] is required
          *
          * @param string $file
          * @param array $params
          * @return string
          */
         public function getFilename($file, array $params)
         {
          Varien_Profiler::start(__METHOD__);
          $this->updateParamDefaults($params);
          $result = $this->_fallback($file, $params, array(
              array(),
              //'_package' is new. Uses this package when looking for default theme
              array('_theme' => $this->getFallbackTheme()),
              array('_theme' => self::DEFAULT_THEME, '_package' => 'default'),
          ));
          Varien_Profiler::stop(__METHOD__);
          return $result;
          }
          }
      

      【讨论】:

        猜你喜欢
        • 2018-05-10
        • 2013-12-23
        • 1970-01-01
        • 2011-11-26
        • 2016-02-13
        • 1970-01-01
        • 1970-01-01
        • 2020-04-17
        • 1970-01-01
        相关资源
        最近更新 更多