Magento'nun ön ucunda Google Haritalar'ı gösteren özel bir modül oluşturuyorum . Bu haritaları almak için Yöneticinin, harita konumunun URL'sini Yönetici Paneli'ne girmesi ve kaydetmesi gerekir. Tüm bunlar iyi çalışıyor. URL veritabanına kaydedilir ve haritalar mağazanın ön ucunda görüntülenir.
Ancak şimdi Yönetici Paneli'nde bu haritanın bir önizlemesini görüntülemek istiyorum. Bu, Yöneticinin doğru URL'nin girilip kaydedilmediğini kolayca kontrol etmesini sağlar.
Bunu Preview Map
yeni bir <field>
URL'de (URL'nin girilmesi gereken alanın hemen altında) görüntülemek ve Harita Önizlemesi kullanmak istiyorum <label>
. Aşağıdaki model, elde etmeye çalıştığım şeyi gösteriyor.
Modüller system.xml
dosyama aşağıdaki kodu ekledim:
<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>
Ve benim MyNamespace/MyModule/Block/System/Config/Map.php
aşağıdaki kodu içerir:
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>';
}
}
Bu, Google Haritasını Yönetici Panelinde işler ve aynı zamanda uygun hale getirir <group>
ancak <field>
istediğim yere yüklenmez . Bu, mevcut durumun gerçek bir ekran görüntüsüdür.
Aklıma gelen her <frontend_type>
şeyi denedim ....
Yani sorum şu: <iframe>
Yönetici Paneline nasıl ekleyebilirim <field>
? Bir şey eklemem gerekir <frontend_model>
mi?
sort_order
Alanınız nedir 'Map Details'
? 20
Sizin için kullanılandan daha az mı 'Map Preview'
?
<frontend_model>
gerçekten de bir yol. Bu dosya içinde yapabilmeniz gerekir$rendered .= '<iframe...