4

私が新しいパッケージを作成するのが好きな主な理由は、ストアのテーマとデフォルトでバンドルされている Magento のテーマを明確に区別できるからです。一方、ほとんどの拡張機能はレイアウトとテンプレート ファイルをapp/design/frontend/default/default/にインストールします。テーマがデフォルト パッケージにインストールされている場合、magento は拡張機能のフロントエンド ファイルを見つけるか、拡張ファイルを次の場所にコピーする必要があります。app/design/frontend/package/default/常に。そのため、独自のパッケージを使用するのはもう少し手間がかかります。

他に何か不足していないか知りたいのですが、デフォルトのパッケージを使用するのではなく、Magento で独自のテーマ パッケージを作成する利点は何ですか?

4

4 に答える 4

11

まず、新しいパッケージの作成は、Magento 公式ユーザー ガイドで行う必要があります。

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

「既定のデザイン パッケージ内にカスタム テーマを作成するか、既定/既定のディレクトリ内のファイルを直接編集するように指示する従来の Magento の手順とチュートリアルは無視してください。むしろ、最適なアップグレードを提供する方法です。テーマのパスと偶発的な変更から最も保護する方法は、新しいデザイン パッケージを作成し、その中にカスタム テーマを作成することです。」

新しいパッケージを作成するための私の個人的な論理は、Magento がストア ビューをほとんど必要とせず、それらに違いがある場合、独自の「デフォルト」テーマが必要であり、それはまさに独自のパッケージを作成することによって得られるものです (Magento は my_theme 内のファイルを探します)。カスタム デザイン パッケージのテーマ、次にデフォルトのテーマ、そしてベース パッケージへのフォールバック)

于 2012-10-03T17:50:04.923 に答える
2

デフォルト/デフォルトを使用し、使用するサードパーティの拡張機能がファイルをデフォルト/デフォルトに配置する場合、それらのファイルを上書きすることはできません。直接編集する必要があります。

だから、

  1. ベンダー/アップストリーム ブランチでサードパーティの拡張機能を修正する
  2. 独自のパッケージを使用する

パッケージで必要なテンプレート/レイアウトのみをオーバーライドできます。

于 2012-10-03T19:58:46.680 に答える
0

/app/design と /skin の 2 つのフォルダーは同一です (ミラー イメージと言えます)。すべての css、画像ファイルを /skin/your_theme ディレクトリの下に保持し、レイアウト用の .phtml ファイルを /app/design/your_theme フォルダーに保持します。

于 2013-02-06T11:47:26.660 に答える
0

デフォルト/デフォルトのパッケージは、私の観点からは設計が悪いです。独自のパッケージを使用する場合、拡張機能はデフォルト ディレクトリを使用できません (?そうですか?)。フィールドのデフォルトパッケージを追加することをお勧めします。

私は今この回避策を使用しています - 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;
    }
    }
于 2013-04-15T16:48:59.367 に答える