Bagaimana cara menimpa file templat inti dari modul khusus?
10
Saya ingin menimpa dua file. Yaitu view.phtmldan print.phtmldari pesanan penjualan.
(path: app/design/frontend/base/default/template/sales/order/)
Saya membuat modul di mana saya ingin membuat jalur app/design/frontend/base/default/template/<My Module Name>/sales/order/agar inti view.phtmldan print.phtmlfile tidak ditimpa.
Jadi tolong bantu saya bagaimana mencapai tugas ini.
Anda bisa melakukan ini dengan file XML layout di dalam modul Anda. Anda perlu memiliki bagian dalam modul Anda config.xmlseperti ini untuk membiarkan Magento memuat tata letak modul XML Anda (jalur:) app/design/frontend/base/default/layout/mymodulename.xml:
Langkah 3: Buat file php yang menimpa file view.phtml yang sebenarnya, aplikasi / kode / lokal / Latihan / CustomSales / Blok / Penjualan / Pesanan / View.php
Latihan kelas_CustomSales_Block_Sales_Order_View meluas Mage_Sales_Block_Order_View
{
fungsi yang dilindungi _construct ()
{
parent :: _ construct ();
$ this-> setTemplate ('customales / sales / order / view.phtml');
}
}
Langkah 4: Anda harus membuat file local.xml di dalam folder layout (Kemungkinan jalur: app / design / frontend / package / theme / layout). Ini untuk print.phtml.
Tidak perlu menulis ulang seluruh blok. Dalam jawaban saya, konstruktor Mage_Sales_Block_Order_Viewget dipanggil pertama dan menetapkan template, kemudian setTemplatedipanggil dipanggil oleh layout XML dari contoh saya dan set template kustom. Saya ingin mencari solusi yang tidak menggunakan penulisan ulang karena berpotensi menyebabkan konflik.
7ochem
7ochem benar. Tidak perlu mengatur Templat di Blok. Solusi 7ochem baik dan itu bekerja untuk saya.
Rajan Faldu
Itu tergantung pada Anda. Jika Anda menimpa atau menambahkan beberapa metode php maka Anda perlu menimpa blok jika tidak, Anda hanya mengubah templat melalui module.xml atau local.xml. Solusi saya tidak mempengaruhi versi magento, kurasa.
Misalkan Nama Modul kami 'CustomSales' dan Nama Paket "Latihan".
Langkah 1: Buat file konfigurasi modul ke app / etc / modules / Exercise_CustomSales.xml
Langkah 2: Buat file config di bawah app / code / local / Exercise / CustomSales / etc / config.xml
Langkah 3: Buat file php yang menimpa file view.phtml yang sebenarnya, aplikasi / kode / lokal / Latihan / CustomSales / Blok / Penjualan / Pesanan / View.php
Langkah 4: Anda harus membuat file local.xml di dalam folder layout (Kemungkinan jalur: app / design / frontend / package / theme / layout). Ini untuk print.phtml.
mis. (app / design / frontend / rwd / default / layout / local.xml)
Pindahkan file view.phtml dan print.phtml ke dalam "app / design / frontend / package / theme / template / customales / sales / order".
Hapus cache magento.
sumber
Mage_Sales_Block_Order_View
get dipanggil pertama dan menetapkan template, kemudiansetTemplate
dipanggil dipanggil oleh layout XML dari contoh saya dan set template kustom. Saya ingin mencari solusi yang tidak menggunakan penulisan ulang karena berpotensi menyebabkan konflik.