Я створюю спеціальний модуль, який відображає Карти Google у передній частині 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...