Magento 2 - Tipe Tema 0: fisik, 1: virtual, 2: pementasan. Kapan menggunakannya?

30

Dalam themetabel ada typebidang dengan 3 nilai yang mungkin: fisik, virtual, dan pementasan.

Kapan menggunakan tema fisik virtual dan pementasan?

Ketika saya memperluas tema luma tema baru saya muncul di tabel tema sebagai tipe virtual. Tapi sepertinya jenis ini tidak memungkinkan mengganti beberapa file, dan hanya mengubah jenis tema dari virtual ke fisik, saya akan memperpanjang untuk Magento_Themepaket contoh .

Pawel Dubiel
sumber
Pertanyaan Bagus Mungkin tidak pasti0: 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 - ?
Ankit Shah
Lihatvendor\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],];
Ankit Shah

Jawaban:

32

Ada 3 jenis berbeda yang didefinisikan dalam Magento/Framework/View/Design/ThemeInterface:

  • Tipe fisik
  • Jenis virtual
  • Jenis pementasan

Tema fisik

Fisik merujuk pada fakta bahwa tema-tema tersebut ditentukan oleh file. Misalnya, tema kosong dan luma didefinisikan secara fisik di bawahapp/design/frontend/

Tema virtual

Ini belum jelas tapi saya pikir tema virtual merujuk ke tema yang dapat Anda buat di backend yang memperluas tema fisik yang ada tetapi sepertinya belum sepenuhnya diimplementasikan.

Anda dapat melihat bahwa ada dua tab yang tersedia di bagian edit hanya untuk tema virtual yang memungkinkan Anda memberikan CSS dan JS khusus untuk tema virtual.

Saya rasa tema virtual akan menjadi sesuatu yang Anda atur sementara (seperti tema Natal) untuk jangka waktu pendek dan yang hanya memerlukan sedikit perubahan desain dibandingkan dengan tema fisik yang diperluas.

Belum ada tombol Tambahkan Tema Virtual tetapi jika Anda menjalankan query SQL berikut ini, Anda dapat mengatur tema virtual dan Anda akan melihat tab CSS dan JS saat mengeditnya:

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');

Dan ini dia, dua tab tambahan dan tombol Simpan / Hapus:

masukkan deskripsi gambar di sini

Pementasan tema

Saya rasa tema pementasan terkait dengan fitur pementasan Magento 2.1 EE: http://devdocs.magento.com/guides/v2.1/extension-dev-guide/staging/Staging.html

Saya menganggap Anda dapat memiliki tema pementasan saat menggunakan kampanye, tetapi saya tidak 100% yakin.

Raphael di Digital Pianism
sumber
Anda baru saja menyelesaikan masalah saya di sini, Raph! Terima kasih - Alvin :)
Alvin Nguyen
1
Saya mengalami masalah dengan typekolom di atas thememeja: Saya membuat tema dan entah bagaimana typenilainya diatur ke 1(bukan default 0). Semua perubahan KURANG / JS saya berhasil, tetapi Magento tidak akan membaca file tata letak apa pun dari tema saya hingga saya mengubah typenilainya menjadi 0. Lebih lanjut tentang ini di sini: nahuelsanchez.com/...
Erik Hansen