Estoy creando un módulo personalizado que muestra Google Maps en la interfaz de Magento. Para obtener esos mapas, el administrador tendría que ingresar y guardar la URL de la ubicación del mapa en el panel de administración. Todo esto funciona bien. La URL se está guardando en la base de datos y los mapas se muestran en la interfaz de la tienda.
Pero ahora también me gustaría mostrar una vista previa de este mapa en el Panel de administración. Esto permitirá que el administrador verifique fácilmente si se ingresó y guardó la URL correcta.
Quiero mostrar esto Preview Map
en una nueva <field>
(justo debajo del campo donde se debe ingresar la URL) y usar una Vista previa del mapa <label>
. La maqueta a continuación muestra lo que estoy tratando de lograr.
A mi system.xml
archivo de módulos he agregado el siguiente 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>
Y mi MyNamespace/MyModule/Block/System/Config/Map.php
contiene el siguiente 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>';
}
}
Esto representa el mapa de Google en el Panel de administración y también se muestra en el correcto, <group>
pero no se carga en el <field>
que quiero. Esta es una captura de pantalla real de la situación actual.
He intentado todo lo <frontend_type>
que puedo pensar ...
Entonces mi pregunta es: ¿Cómo puedo insertar un <iframe>
en un Panel de administración <field>
? ¿Debo agregar algo a mi <frontend_model>
?
sort_order
de su 'Map Details'
campo? ¿Es menos que el 20
usado para tu 'Map Preview'
?
<frontend_model>
es el camino a seguir. Dentro de ese archivo deberías poder$rendered .= '<iframe...