我正在创建一个自定义模块,该模块在Magento的前端显示Google Maps。要获取这些地图,管理员必须在管理面板中输入并保存地图位置的URL。这一切都很好。该URL已保存在数据库中,并且地图显示在商店的前端。
但是现在我也想在管理面板中显示此地图的预览。这将使管理员可以轻松检查是否输入并保存了正确的URL。
我想以Preview Map
新的方式<field>
(在应输入URL的字段下方)显示此内容,并使用“地图预览” <label>
。下面的模型显示了我要实现的目标。
我的模块system.xml
文件中添加了以下代码:
<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>
并且我MyNamespace/MyModule/Block/System/Config/Map.php
包含以下代码:
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>';
}
}
这确实会在管理面板中呈现Google Map,并且也会以适当的形式呈现,<group>
但没有加载<field>
到我想要的中。这是当前情况的实际屏幕截图。
我已经尽力<frontend_type>
想了....
所以我的问题是:如何<iframe>
在管理面板中插入<field>
?我应该添加一些东西<frontend_model>
吗?
sort_order
你的'Map Details'
领域?它比20
您使用的少'Map Preview'
吗?
<frontend_model>
的确实是要走的路。在该文件中,您应该能够$rendered .= '<iframe...