Я создаю пользовательский модуль, который отображает Google Maps в интерфейсе Magento. Чтобы получить эти карты, администратор должен будет ввести и сохранить 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 в панели администратора, а также отображает в <group>
но она не загружена в то, <field>
что я хочу. Это фактический снимок экрана с текущей ситуацией.
Я перепробовал все, <frontend_type>
что мог придумать ....
Итак, мой вопрос: как я могу вставить <iframe>
в панель администратора <field>
? Должен ли я что-то добавить к своему <frontend_model>
?
sort_order
ваша 'Map Details'
область? Это меньше, чем 20
используется для вашего 'Map Preview'
?
<frontend_model>
действительно путь. В этом файле вы должны быть в состоянии$rendered .= '<iframe...