Làm thế nào để thêm các quốc gia được phép vào các khu vực khác ở dạng tùy chỉnh


8

Tôi cần tạo một mô-đun tùy chỉnh cho phép quản trị viên tạo các Vùng cho các quốc gia khác nhau. Tôi cần thêm trường 'cho phép quốc gia' (giống như trong magento mặc định System > Configuration > General > Countries Options) trong biểu mẫu của mình nơi quản trị viên có thể chọn quốc gia cho một khu vực.

Tôi chỉ cần thêm trường đa quốc gia trong biểu mẫu quản trị mô-đun tùy chỉnh của mình.

Bất cứ ai có thể giúp tôi làm thế nào để làm điều này. Cảm ơn..


xin lỗi quên hỏi, bạn muốn thêm phần này trong phần cấu hình tùy chỉnh hoặc biểu mẫu quản trị viên của bạn?
Shathish

Tôi cần thêm trường trong mẫu quản trị mô-đun tùy chỉnh của mình.
Jaimin Sutariya

Câu trả lời:


6

Tôi tìm thấy giải pháp.
Để thêm danh sách thả xuống nhiều quốc gia trong biểu mẫu của bạn, bạn cần thêm mã bên dưới vào Block/Adminhtml/ModuleName/Edit/Tab/Form.phptệp của mình .

$countryList = Mage::getModel('directory/country')->getResourceCollection()->loadByStore()->toOptionArray(true);
$fieldset->addField('countries', 'multiselect', array(
            'name'      => 'countries[]',
            'label'     => Mage::helper('zones')->__('Countries'),
            'title'     => Mage::helper('zones')->__('Countries'),
            'required'  => true,
            'values'    => $countryList,
        ));

6

Để đưa vào trường quốc gia được phép trong cấu hình mô-đun tùy chỉnh của bạn:

thêm phần sau vào systemDB của mô-đun của bạn

<sallowspecific translate="label">
    <label>Ship to Applicable Countries</label>
    <frontend_type>select</frontend_type>
    <sort_order>90</sort_order>
    <frontend_class>shipping-applicable-country</frontend_class>
    <source_model>adminhtml/system_config_source_shipping_allspecificcountries</source_model>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <show_in_store>0</show_in_store>
</sallowspecific>
<specificcountry translate="label">
    <label>Ship to Specific Countries</label>
    <frontend_type>multiselect</frontend_type>
    <sort_order>91</sort_order>
    <source_model>adminhtml/system_config_source_country</source_model>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <show_in_store>0</show_in_store>
    <can_be_empty>1</can_be_empty>
</specificcountry>

dưới <fields>thẻ trong phần tùy chỉnh của bạn.

Để thêm nó trong mẫu quản trị:

trong ứng dụng / mã / cục bộ / Yourmodulename / Block / adminhtml / Yourmodulename / Edit / Tab / Form.php

$countryList = Mage::getModel('directory/country')->getResourceCollection()->loadByStore()->toOptionArray(true);
$fieldset->addField('allowed_countries', 'multiselect', array( /* "allowed_countries" is the column name in your custom table to store these values */
    'name'      => 'countries[]',
    'label'     => Mage::helper('yourmodulename')->__('Allowed Countries'),
    'title'     => Mage::helper('yourmodulename')->__('Allowed Countries'),
    'required'  => true, /* only if it is required */
    'values'    => $countryList,
));

Ghi chú:

  • Bạn phải viết logic để lưu các giá trị đa lựa chọn trong cơ sở dữ liệu trong saveAction ()

để hiển thị điều này trong lưới quản trị:

tham khảo liên kết này .


Để lưu các giá trị đa lựa chọn, bạn chỉ cần mã hóa dữ liệu bài đăng bằng cách sử dụng "," (ví dụ: $ country = implode (",", $ selectCountries)) và lưu nó vào cơ sở dữ liệu. Magento sẽ làm mọi thứ khác để lấy lại khi chỉnh sửa hoặc xem trang.
Jaimin Sutariya

3
$fieldset->addField('country', 'select', array(  
        'name' => 'country',  
        'label' => 'Country',  
        'values' => Mage::getModel('adminhtml/system_config_source_country')->toOptionArray(),  
        ));
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.