Saya tidak yakin cara memperbarui modul khusus agar berfungsi dengan tambalan SUPEE-6788 , petunjuknya tidak begitu jelas.
Berdasarkan tutorial Alan Storm , saya membuat modul sederhana di generator www.silksoftware.com/magento-module-creator/ untuk pengujian. Ini memiliki halaman khusus di admin yang berfungsi dengan baik, tetapi ketika saya menerapkan perbaikan yang diperlukan di SUPEE-6788, halaman admin menunjukkan 404 kesalahan.
URL dari halaman admin khusus adalah:
localhost / index.php / admin / admin_adminhello / adminhtml_adminhellobackend / index / key / 83f08ec4bddff37e47412e16acc8d3f6 /
Berikut konfigurasi modul:
<config>
<modules>
<Pulsestorm_Adminhello>
<version>0.1.0</version>
</Pulsestorm_Adminhello>
</modules>
<global>
<helpers>
<adminhello>
<class>Pulsestorm_Adminhello_Helper</class>
</adminhello>
</helpers>
<blocks>
<adminhello>
<class>Pulsestorm_Adminhello_Block</class>
</adminhello>
</blocks>
</global>
<admin>
<routers>
<adminhello>
<use>admin</use>
<args>
<module>Pulsestorm_Adminhello</module>
<frontName>admin_adminhello</frontName>
</args>
</adminhello>
</routers>
</admin>
...
Ini controllernya:
/app/code/local/Pulsestorm/Adminhello/controllers/Adminhtml/AdminhellobackendController.php
class Pulsestorm_Adminhello_Adminhtml_AdminhellobackendController extends Mage_Adminhtml_Controller_Action
{
public function indexAction()
{
$this->loadLayout();
$this->_title($this->__("My Test Page Title"));
$this->renderLayout();
}
}
Larutan
Saya mengganti <routers>
bagian berdasarkan instruksi dari tambalan seperti ini (mungkin salah):
<routers>
<adminhtml>
<args>
<modules>
<admin_adminhello after="Mage_Adminhtml">Pulsestorm_Adminhello_Adminhtml</admin_adminhello>
</modules>
</args>
</adminhtml>
</routers>
Tetapi sekarang URL hanya menunjukkan 404 error
:
localhost / index.php / admin / admin_adminhello / adminhtml_adminhellobackend / index / key / 83f08ec4bddff37e47412e16acc8d3f6 /
Bagaimana cara memperbaiki modul dengan benar untuk tambalan baru itu? Apakah saya hanya perlu memperbarui config.xml
atau apakah saya juga perlu mengubah URL halaman admin setelah menerapkan tambalan ini?
Saya kehilangan jam mencari tahu ini. Hanya karena para Dev di Magento tidak mampu membuat konfigurasi yang dapat dimengerti, atau bahkan mendokumentasikan kode mereka dengan cara yang dapat dibaca oleh manusia.
Mari kita lihat config.xml terlebih dahulu
Seluruh arti dari Tag telah berubah. Tag di bawah "modul" hanyalah nama acak. Anda hanya perlu memastikan keunikannya untuk memastikan itu tidak ditimpa ketika XML dikompilasi. Itu memiliki pengaruh pada URL.
Magento sekarang mengharapkan Anda untuk memindahkan kelas-kelas pengendali backend Anda ke subfolder baru yang disebut "adminhtml" Inilah sebabnya mengapa di config.xml Anda harus mengubah akhiran nama kelas dengan menambahkan _Adminhtml .
Dalam kasus Anda, folder tersebut akan berlokasi di
Sekarang Masalah sebenarnya. Menggunakan sistem (lebih baik) lainnya, Anda memiliki ruang nama sendiri yang ditentukan dengan menggunakan Tag "FrontName". Anda tidak lagi memiliki kemewahan ini, jadi Anda perlu memastikan pengontrol Anda memiliki nama yang unik. Kalau tidak, itu akan bertentangan dengan Ekstensi lain. Jadi pengontrol yang menamakan sesuatu seperti "AdminController.php" tidak lagi bagus, Anda harus menjadikannya sesuatu yang spesifik untuk proyek, seperti dalam kasus Anda " AdminhelloController.php "
URL Anda kemudian akan dikaburkan ke
Jangan lupa untuk menyesuaikan nama pengontrol setelah mengganti nama atau memindahkan file
Dalam hal ini namanya adalah Pulsestorm_Adminhello_Adminhtml_AdminhellobackendController
Tentu saja Anda juga harus menyesuaikan URL apa pun yang digunakan dalam item menu dan formulir yang Anda gunakan di backend
Pastikan juga Anda mengaktifkan Mode Pengembang di file index.php . Saya perhatikan bahwa jika controller memiliki beberapa bug di dalamnya, Anda juga mendapatkan 404. Dengan mode Develeport Anda mendapatkan kesalahan Stacktrace.
Apa yang saya juga akan lakukan, hanya menulis log setelah controller dipanggil, hanya agar Anda melihat apakah metode controller diakses sama sekali.
sumber
Pulsestorm_Adminhello_Adminhtml
dalam config.xml. Anda juga perlu memperbarui pegangan tata letak admin, dan panggilan untuk menghasilkan seperti admin URLgetUrl()
.Berikut adalah alat analisis / perbaikan untuk konflik ekstensi dan penyesuaian yang dihasilkan dari patch Magento SUPEE-6788.
https://github.com/rhoerr/supee-6788-toolbox
Catatan: Sebelum menerapkan tambalan atau perbaikan tambalan, selalu disarankan untuk membuat cadangan situs web dan basis data Anda.
Anda hanya dapat menganalisis apa yang perlu diperbaiki.
ATAU, Anda dapat menerapkan perubahan / perbaikan juga.
sumber