Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
magento创建自己的包或使用默认值_Magento_Themes_Installation_Packages - Fatal编程技术网

magento创建自己的包或使用默认值

magento创建自己的包或使用默认值,magento,themes,installation,packages,Magento,Themes,Installation,Packages,我喜欢创建一个新的包的主要原因是,它允许您在商店主题和默认捆绑的Magento主题之间保持干净的分隔。另一方面,大多数扩展将布局和模板文件安装到app/design/frontend/default/default/中,如果主题安装在默认软件包下,magento将找到扩展前端文件,否则您必须始终将扩展文件复制到app/design/frontend/package/default/。因此,使用您自己的软件包需要做更多的工作 我很想知道我是否遗漏了其他东西,那么在Magento中创建自己的主题包与

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


我很想知道我是否遗漏了其他东西,那么在Magento中创建自己的主题包与使用默认包相比有哪些好处

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

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


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

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

那么

  • 修复供应商/上游分支中的第三方扩展
  • 使用您自己的软件包

  • 您只能覆盖包中所需的模板/布局

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

    从我的角度来看,默认/默认包设计不好。 如果您使用自己的包,则扩展无法使用默认目录(?对?)。 我建议添加一个字段默认包

    我使用的是now-config.xml:

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

    我也是。这是Magento认证研究指南中的一个问题,我的团队中没有人真正有一个明确的答案-我们得出的结论是,这样做没有什么真正的好处,除了更容易组织和分离您自己的主题。对于我们的内部模块,我们使用默认/默认系统,但始终将我们的文件保存在该目录下(布局、模板)的目录中,以避免与其他模块或将来添加的magento发生任何文件名冲突。我认为该软件包对于开发主题的公司来说可能很方便,可以将其主题分组,并将其与其他主题分开。在任何情况下,主题/皮肤机制都将在Magento 2中进行(并且部分进行)返工。谢谢大家的支持。非常感谢。非常正确,谢尔盖。另外,官方建议将自定义模块模板和布局文件放在相应名称空间的base/default中。谢谢,Ben。由于自定义和回退过程,我被教导将所有自定义模块模板转移到基本/默认模式,并将模块代码从“本地”转移到“社区”池(不幸的是,即使一些最著名的模块开发人员将其扩展放在本地文件夹中,也没有机会在没有更新问题的情况下自定义其ext)。+1。这是相当恼人的社区扩展的数量与布局和默认包中的模板文件,只有一个自述文件说,移动我到您的包/主题。谢谢大家的意见。非常有价值的信息。
        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;
        }
        }