Terkadang ada kebutuhan untuk menimpa kelas inti untuk mendapatkan lebih banyak fungsi atau untuk membuat beberapa fungsi inti bekerja dengan cara lain. Apakah ada cara bagaimana menimpa kelas inti? Jika mungkin maka masalah apa yang bisa saya hadapi dengan menimpanya?
20
Jawaban:
Ya itu mungkin.
Anda dapat menggunakan sistem plugin untuk menimpa kelas, silahkan baca ini hubungan dan ini dan ini
Dua masalah yang akan Anda hadapi:
Anda perlu mengganti seluruh kelas (bukan hanya sebagian saja)
jika inti diperbarui dan kelas juga diperbarui / diubah, Anda perlu memperbarui penggantian Anda (jika perlu).
sumber
Saya membuat sebuah plugin beberapa waktu lalu yang memungkinkan Anda untuk menimpa kelas inti, tetapi masih menjadi mangsa masalah yang @jackJoe tunjukkan dalam jawabannya. Namun, ini memungkinkan Anda untuk melakukan penggantian dengan bersih.
https://gist.github.com/dongilbert/3237387
sumber
components/com_content/models/articles.php
.Untuk pengguna Joomla 3 - lihat ini. Itu akan membantumu.
Ganti kelas MVC di Joomla 3
Plugin - https://github.com/ghazal/plg_mvcoverride
http://docs.joomla.org/How_to_override_the_component_mvc_from_the_Joomla!_core
Terima kasih /joomla//users/270/ghazal
sumber
Saya sudah membahas hal ini untuk waktu yang sangat lama dan berjanji kepada Don bahwa setelah saya selesai akan memberikan rincian lebih lanjut tentang hal itu.
Saya perlu mengganti komponen Joomla MVC dan memberitahu Joomla untuk mencari pengganti dalam folder html plugin saya juga, tidak hanya di dalam folder template html.
Apa yang tidak pernah saya sukai adalah ketika para pengembang benar-benar mengambil kelas default Joomla dan mengacaukannya, jadi saya lebih suka memperpanjang kelas itu jika saya bisa, alih-alih mengerem sesuatu.
Proses saya memang mengikuti.
di sini adalah gambarnya bukan http://prntscr.com/3d9syq
Bagian pertama dalam cuplikan di bawah ini adalah memeriksa di mana pengguna berada, jika ia akan memperbarui Joomla saya menghapus file kelas temp yang dibuat untuk memastikan bahwa kami mendapatkan yang baru ketika pembaruan selesai yang daripada menangani nomor JackJoe 2.
sumber