Magento 2-テーマタイプ0:物理、1:仮想、2:ステージング。いつ使用するか?


30

themeテーブルがあるtype物理的、仮想およびステージング:3つの可能な値を持つフィールドは、。

物理的な仮想およびステージングテーマを使用する場合

lumaテーマを拡張すると、新しいテーマがテーマテーブルに仮想タイプとして表示されます。しかし、このタイプでは一部のファイルをオーバーライドできないため、テーマタイプを仮想から物理に変更するだけで、たとえばMagento_Themeパッケージを拡張できます。


良い質問わからないかもしれません0: Physical - Magento Default Theme (Example: Magento Blank, Magento Luma, Magento 2 Backend) 1: Virtual - Custom Theme which is created by you (custom) which has parent as Default Theme (Example: My Theme) 2: Staging - ?
アンキットシャー

参照vendor\magento\module-theme\Model\Theme\Registration.php /** Allowed sequence relation by type, array(parent theme, child theme) * @var array */ protected $_allowedRelations = [ [ThemeInterface::TYPE_PHYSICAL, ThemeInterface::TYPE_VIRTUAL], [ThemeInterface::TYPE_VIRTUAL, ThemeInterface::TYPE_STAGING],]; /** Forbidden sequence relation by type ** @var array*/ protected $_forbiddenRelations = [[ThemeInterface::TYPE_VIRTUAL, ThemeInterface::TYPE_VIRTUAL],[ThemeInterface::TYPE_PHYSICAL, ThemeInterface::TYPE_STAGING],];
アンキットシャー

回答:


32

には3つの異なるタイプが定義されていMagento/Framework/View/Design/ThemeInterfaceます:

  • 物理的なタイプ
  • 仮想タイプ
  • ステージングタイプ

物理的なテーマ

物理とは、それらのテーマがファイルによって定義されているという事実を指します。たとえば、blankとlumaテーマは物理的に定義されますapp/design/frontend/

仮想テーマ

これはまだ明確ではありませんが、仮想テーマは、既存の物理テーマを拡張するバックエンドで作成できるテーマを指すと思いますが、まだ完全には実装されていないようです。

編集セクションには、仮想テーマ専用の2つのタブがあり、仮想テーマのカスタムCSSとJSを提供できます。

仮想テーマは、短期間のテーマ(クリスマステーマなど)を一時的に設定するもので、物理的なテーマと比較してデザインの変更がほとんど必要ないものと考えています。

[仮想テーマの追加]ボタンはまだ使用できませんが、次のSQLクエリを実行すると、仮想テーマを設定でき、編集時に[CSS]タブと[JS]タブが表示されます。

INSERT INTO `theme` (`theme_id`, `parent_id`, `theme_path`, `theme_title`, `preview_image`, `is_featured`, `area`, `type`, `code`) VALUES (NULL, '1', NULL, 'test', NULL, '0', 'frontend', '1', 'test/test');

次に、2つの追加タブと[保存/削除]ボタンを使用します。

ここに画像の説明を入力してください

ステージングテーマ

ステージングテーマは、Magento 2.1 EEステージング機能に関連していると考えています。http//devdocs.magento.com/guides/v2.1/extension-dev-guide/staging/Staging.html

キャンペーンの使用時にステージングテーマを設定できると思いますが、100%確信はありません。


ここで私の問題をRaphで解決しました!ありがとう-アルヴィン:)
アルヴィングエン

1
テーブルのtype列に問題が発生しましたtheme:テーマを作成し、何らかの方法でtype値が1(デフォルトの代わりに0)設定されました。LESS / JSの変更はすべて機能しましたが、type値をに変更するまで、Magentoはテーマからレイアウトファイルを読み取りませんでした0。もっとここにこの上:nahuelsanchez.com/...
エリック・ハンセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.