Tôi đang tạo một mô-đun tùy chỉnh hiển thị Google Maps ở mặt trước của Magento. Để có được những bản đồ đó, Quản trị viên sẽ phải nhập và lưu URL của vị trí bản đồ trong Bảng quản trị. Tất cả điều này hoạt động tốt. URL đang được lưu trong cơ sở dữ liệu và các bản đồ được hiển thị ở lối vào của cửa hàng.
Nhưng bây giờ tôi cũng muốn hiển thị bản xem trước của bản đồ này trong Bảng quản trị. Điều này sẽ cho phép Quản trị viên dễ dàng kiểm tra xem URL chính xác được nhập và lưu hay chưa.
Tôi muốn hiển thị cái này Preview Map
trong một cái mới <field>
(ngay bên dưới trường cần nhập URL) và sử dụng Bản xem trước bản đồ <label>
. Mockup dưới đây hiển thị những gì tôi đang cố gắng để đạt được.
Để system.xml
tập tin mô-đun của tôi, tôi đã thêm mã sau đây:
<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>
Và của tôi MyNamespace/MyModule/Block/System/Config/Map.php
chứa mã sau đây:
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>';
}
}
Điều này không hiển thị Google Map trong Bảng quản trị và nó cũng hiển thị đúng <group>
nhưng nó không được tải theo cách <field>
tôi muốn. Đây là một ảnh chụp màn hình thực tế của tình hình hiện tại.
Tôi đã thử mọi cách <frontend_type>
tôi có thể nghĩ đến ....
Vì vậy, câu hỏi của tôi là: Làm thế nào tôi có thể chèn một <iframe>
Bảng quản trị <field>
? Tôi có nên thêm một cái gì đó cho tôi <frontend_model>
?
sort_order
của bạn 'Map Details'
lĩnh vực? Là nó ít hơn so với 20
sử dụng cho của bạn 'Map Preview'
?
<frontend_model>
thực sự là con đường để đi. Trong tập tin đó, bạn sẽ có thể$rendered .= '<iframe...