Cara membuat tata letak modul untuk ditampilkan pada semua tema

13

Inilah situasinya: Saya memiliki beberapa modul buatan sendiri, semuanya diuji dan bekerja menggunakan tema default. Kemudian kami membeli dan memasang tema baru. Beralih ke tema baru dan modul tidak ditampilkan. Setelah beberapa uji coba / gagal saya menemukan bahwa saya perlu menyalin tata letak dan file templat yang sesuai ke folder yang sesuai dari tema yang baru diinstal.

Jadi, pertanyaan saya adalah: apa yang harus saya lakukan untuk mendapatkan semua modul saya bekerja dengan tema apa pun yang diinstal setelah pengaturan modul?

Yaroslav
sumber
1
Jika Anda meletakkan file layout Anda di desain / frontend / base / default / ... mereka akan ditampilkan apa pun temanya
Sander Mangel

Jawaban:

17

Letakkan segala sesuatu di base/defaultjalan.

Contoh:

app/design/frontend/base/default

skin/frontend/base/default

Mark Shust
sumber
Aduh! tidak memikirkannya, Anda benar, akan menguji segera setelah tiba di kantor.
Yaroslav
+1 - Ada terlalu banyak modul di luar sana yang berlabel "komunitas" yang tidak mengikuti praktik ini dan mereka seharusnya.
pspahn
Template dasar diperkenalkan di Magento 1.4. untuk mengatasi masalah ini dengan tepat. Pada versi sebelumnya menyalin file template, jika Anda tidak menggunakan paket default, adalah cara untuk melakukannya.
Kristof di Fooman
5

Yang benar adalah, Anda tidak dapat benar - benar menjamin bahwa itu akan terjadi. Memasukkan file Anda ke dalam base/default(atau default/defaultjika mereka menimpa templat inti - karena Anda tidak ingin menimpa file dasar dengan pemasangan modul, meskipun ini memaksa Anda untuk menyimpan duplikat untuk edisi perusahaan) akan menjamin bahwa mereka menjadi fallback, tetapi file tema akan selalu menjadi prioritas tingkat tertinggi.

Sebagian besar modul dilengkapi dengan panduan instalasi, yang mencakup penyebutan untuk menyalin file templat ke tema pengguna jika ada yang disesuaikan. Itu tentang yang terbaik yang dapat Anda lakukan.

Andrew Quackenbos
sumber
4

Satu hal yang telah kami gunakan beberapa kali adalah [Fabrizio Branca] [Custom Fallback] [2] modlue. Ini adalah modul yang sangat berguna untuk menentukan hierarki fallback tema kustom Anda sendiri. Satu hal yang dapat Anda lakukan adalah menentukan:

  1. custom/theme

  2. base/default

  3. default/default

Kemudian modul apa pun yang menempatkan template mereka sendiri dalam default/defaulttema. Tidak akan berfungsi jika mereka mencoba mengganti base/defaultpaket.

Anda dapat menentukan sejumlah paket / tema dalam hierarki fallback khusus.

[1]: http://www.fabrizio-branca.de/ [2]: http://www.fabrizio-branca.de/custom-design-fallbacks-in-magento.html

Luke Mills
sumber
2

Semua templat dan file tata letak base/defaultakan dimuat kecuali ditimpa di suatu tempat di sepanjang jalan. Namun, jika modul khusus Anda adalah semacam widget, maka Anda harus memastikannya digaungkan di mana pun dibutuhkan. Jika misalnya Anda membuat perubahan yang ditampilkan pada halaman produk melalui getChildHtml, maka panggilan-panggilan itu juga harus dalam tema yang sesuai. Namun jika templat modul Anda adalah halaman sendiri dan tidak diambil darinya base/default, maka sesuatu memblokir konfigurasi tata letak dan Anda harus menemukan apa.

Petar Dzhambazov
sumber
Sangat menarik komentar tentang getChild, memang ada beberapa panggilan semacam ini.
Yaroslav
1

Tidak ada jawaban sederhana untuk ini. Tergantung pada modul yang Anda miliki. Sebagai contoh, beberapa perusahaan modul, menimpa file inti. Oleh karena itu, Anda harus terlebih dahulu memeriksa apa file yang tersedia di app/etc/modulesdan app/code/local/Mage, app/code/community/Magefolder. Seperti yang Anda ketahui, folder pertama adalah folder inisialisasi modul yang dapat Anda nonaktifkan atau aktifkan modul yang terkait dengan file xml. Dua folder terakhir (jika tersedia) adalah folder utama yang menimpa kode inti.

Kemudian, buka salah satu file xml yang tersedia etc/modulesdirektori. Anda akan melihat sesuatu seperti di bawah ini:

<?xml version="1.0"?>
<config>
<modules>
    <Company_Namespace>
        <active>true</active>
        <codePool>local</codePool>
    </Company_Namespace>
</modules>

Inilah bagian-bagian penting Companydan Namespace. Ketika Anda mengunjungi folder app/code/localatau app/code/community, Anda akan melihat folder bernama Companydan diikuti oleh sub folder bernama Namespace.

Ketika Anda mencari, NamespaceAnda akan melihat sub-folder bernama /etc. Folder ini menyimpan file konfigurasi modul terkait config.xml. File ini memiliki garis konfigurasi terkait modul yang dapat Anda rujuk file apa yang terkait modul ini.

Seperti yang saya katakan di baris pertama saya, sulit untuk dikelola.

Oğuz Çelikdemir
sumber
Saya pikir Anda melewatkan inti pertanyaan. Dia bertanya tentang pembaruan tata letak. Praktik terbaik adalah dengan menggunakan jalur base / default / yourmodule.
Mark Shust