Saya membuat modul khusus yang menampilkan Google Maps di bagian depan Magento. Untuk mendapatkan peta-peta itu, Admin harus memasukkan dan menyimpan URL lokasi peta di Panel Admin. Ini semua berfungsi dengan baik. URL disimpan dalam database dan peta ditampilkan di frontend toko.
Tetapi sekarang saya juga ingin menampilkan pratinjau peta ini di Panel Admin. Ini akan memungkinkan Admin untuk dengan mudah memeriksa apakah URL yang benar dimasukkan dan disimpan.
Saya ingin menampilkan ini Preview Map
dalam yang baru <field>
(tepat di bawah bidang tempat URL harus dimasukkan) dan menggunakan Pratinjau Peta <label>
. Maket di bawah ini menampilkan apa yang saya coba capai.
Ke system.xml
file modul saya, saya telah menambahkan kode berikut:
<fields>
....
<preview translate="label comment">
<label>Map Preview</label>
<frontend_type>link</frontend_type>
<frontend_model>mymodule/system_config_map</frontend_model>
<comment>Preview of your map</comment>
<sort_order>20</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</preview>
</fields>
Dan saya MyNamespace/MyModule/Block/System/Config/Map.php
berisi kode berikut:
class MyNamespace_MyModule_Block_System_Config_Map extends Mage_Adminhtml_Block_Abstract implements Varien_Data_Form_Element_Renderer_Interface
{
public function render(Varien_Data_Form_Element_Abstract $element) {
$url = Mage::helper('mymodule')->getMapUrl($store = null);
return '<iframe style="border: 0;" src="'.$url.'" frameborder="0" width="100%" height="270"></iframe>';
}
}
Ini membuat Google Map di Panel Admin dan juga merender dengan tepat <group>
tetapi tidak dimuat dalam <field>
yang saya inginkan. Ini adalah screenshot aktual dari situasi saat ini.
Saya telah mencoba setiap yang <frontend_type>
saya bisa pikirkan ....
Jadi pertanyaan saya adalah: Bagaimana saya bisa memasukkan <iframe>
dalam Panel Admin <field>
? Haruskah saya menambahkan sesuatu ke saya <frontend_model>
?
sort_order
Anda 'Map Details'
? Apakah kurang dari yang 20
digunakan untuk Anda 'Map Preview'
?
<frontend_model>
memang cara untuk pergi. Di dalam file itu Anda seharusnya bisa$rendered .= '<iframe...