Saya telah melakukan yang berikut untuk memasukkan jQuery dari Google CDN di Magento:
<default>
<reference name="head">
<block type="core/text" name="google.cdn.jquery">
<action method="setText">
<text><![CDATA[<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script><script type="text/javascript">jQuery.noConflict();</script>]]>
</text>
</action>
</block>
</reference>
</default>
Namun ketika saya ingin mengimplementasikannya dengan fallback lokal, yang berfungsi dengan baik, saya akhirnya menambahkannya ke .phtml saya seperti:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
if (!window.jQuery) {
document.write('<script src="/path/to/your/jquery"><\/script>');
}
</script>
- Apakah ada cara yang lebih elegan untuk melakukan ini di local.xml daripada mendorong fallback ke
<text>
node seperti yang saya lakukanjQuery.noConflict
?
Edit:
Untuk menarik perhatian ke bagian lain dari pertanyaan - apakah ada modul komunitas yang menyertakan jQuery untuk Anda? Jika mereka memiliki jQuery lokal, itu bagus - jika mereka menggunakan Google CDN - bahkan lebih baik. Jika ini tidak ada, saya ingin membuatnya.
- Apakah ada ekstensi masuk yang menangani ini tanpa saya harus bootstrap sendiri?
layout
javascript
Philwinkle
sumber
sumber
<text>
metode seperti yang dijelaskan di atas ... tidak yakin apakah itu solusi yang dapat diterima. Modul n98 menggunakan js terpisah termasuk file untuk memanggil noConflict, meskipun, saya kira ...Jawaban:
Pada akhirnya, melakukan ini melalui Layout XML lebih disukai. Saya telah menemukan bahwa opsi fallback lokal paling baik diimplementasikan dalam pernyataan satu baris yang diperkecil dengan Google Closure Compiler.
sumber
Saya mencari untuk waktu yang lama melalui kode file head.phtml dan file dan blok sekitar tetapi tidak ada cara tanpa mengubah template untuk menyuntikkan kode ke dalam <head>.Saya idiot, Anda sudah menulis semuanya dan saya mengawasi beberapa kali
<?php echo $this->getChildHtml() ?>
dalamhead.phtml
: - /Jadi saya hanya akan menggunakan
core/template
blok dan template untuk ini. Mudah dibaca, mudah dimengerti, dan mudah dikelola.sumber
core/text_list
dan menambahkan di sana semua hal yang Anda inginkan (jika lebih dari satu file) untuk lebih mudah menghapusnya di halaman lain.