Magento: obtenir région de la liste pour les pays dans l'admin du module d'expédition

Actuellement dans mon /etc/system.xml fichier que je peux l'utiliser pour tirer à travers une liste complète des régions qui sont stockés dans Magento et de les afficher en tant que multiple. Cela fonctionne bien, mais je préfère que tirer à travers les régions d'un pays, comme le royaume-UNI des comtés ou des états-unis:

                    <counties translate="label">
                        <label>Counties</label>
                        <frontend_type>multiselect</frontend_type>
                        <sort_order>10</sort_order>
                        <source_model>adminhtml/system_config_source_allregion</source_model>
                        <show_in_default>1</show_in_default>
                        <show_in_website>1</show_in_website>
                        <show_in_store>1</show_in_store>
                    </counties>

La raison pour cela est que j'ai ajouté beaucoup de régions/états/comtés sur le système et il est maintenant pas très convivial multi-boîte de sélection.

Mise à JOUR:

Après pas immédiatement agissant sur les solutions proposées ci-dessous j'ai repensé à ce problème plus tard pour monter ma propre solution inspirée par les réponses fournies.

J'ai copié app/code/core/Mage/Adminhtml/Model/System/Config/Source/Allregion.php pour app/code/core/Mage/Adminhtml/Model/System/Config/Source/Ukregion.php

Puis j'ai changé la définition de classe pour Mage_Adminhtml_Model_System_Config_source_ukregion.

Puis j'ai changé:

        $regionsCollection = Mage::getResourceModel('directory/region_collection')->load();

pour inclure un pays de filtre:

        $regionsCollection = Mage::getResourceModel('directory/region_collection')->addCountryFilter('GB')->load();

Je reçois maintenant les comtés du royaume-UNI (que j'ai eu à modifier moi-même, mais c'est une autre histoire-style-magento-problème).

Finalement j'ai changé d'system.xml:

                    <counties translate="label">
                        <label>Counties</label>
                        <frontend_type>multiselect</frontend_type>
                        <sort_order>10</sort_order>
                        <source_model>adminhtml/system_config_source_ukregion</source_model>
                        <show_in_default>1</show_in_default>
                        <show_in_website>1</show_in_website>
                        <show_in_store>1</show_in_store>
                    </counties>

L'utilisation de 'royaume-UNI' au lieu de 'GO' est totalement délibérée - GO ne comprend pas la NI comtés, il est juste utilisé pour "des raisons d'héritage'. Au royaume-UNI " ne comprennent Irlande du Nord, comme le fait mon comté de liste.

InformationsquelleAutor | 2011-06-15