MagentoのフロントエンドでGoogleマップを表示するカスタムモジュールを作成しています。これらのマップを取得するには、管理者が管理パネルでマップの場所の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...