Estou criando um módulo personalizado que exibe o Google Maps no front-end do Magento. Para obter esses mapas, o administrador precisaria inserir e salvar o URL da localização do mapa no painel do administrador. Tudo isso funciona bem. O URL está sendo salvo no banco de dados e os mapas são exibidos no frontend da loja.
Mas agora eu também gostaria de exibir uma visualização deste mapa no painel de administração. Isso permitirá que o administrador verifique facilmente se o URL correto foi inserido e salvo.
Quero exibir isso Preview Map
em um novo <field>
(logo abaixo do campo em que o URL deve ser inserido) e usar uma Visualização de mapa <label>
. A maquete abaixo mostra o que estou tentando alcançar.
No meu system.xml
arquivo de módulos , adicionei o seguinte código:
<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>
E my MyNamespace/MyModule/Block/System/Config/Map.php
contém o seguinte código:
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>';
}
}
Isso renderiza o Google Map no Painel de administração e também é renderizado corretamente, <group>
mas não é carregado no <field>
que eu quero. Esta é uma captura de tela real da situação atual.
Eu tentei tudo o <frontend_type>
que posso pensar ....
Portanto, minha pergunta é: como inserir um <iframe>
em um painel de administração <field>
? Devo adicionar algo ao meu <frontend_model>
?
sort_order
seu 'Map Details'
campo? É menor do que o 20
usado para o seu 'Map Preview'
?
<frontend_model>
é realmente o caminho a percorrer. Dentro desse arquivo, você deve ser capaz de$rendered .= '<iframe...