如果您查看数据文件夹中的 Magento 模块“目录”:data/directory_setup/data-install-1.6.0.0.php 文件,您可以看到 Magento 是如何填充表格的。
例如,要添加澳大利亚州,首先,使用以下文件创建一个模块:
应用程序/代码/本地/包/Ausregions/etc/config.xml
<?xml version="1.0"?><config><modules>
<Package_Ausregions>
<version>0.1.0</version>
</Package_Ausregions>
</modules>
<global>
<helpers>
<ausregions>
<class>Package_Ausregions_Helper</class>
</ausregions>
</helpers>
<resources>
<ausregions_setup>
<setup>
<module>Package_Ausregions</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</ausregions_setup>
<ausregions_write>
<connection>
<use>core_write</use>
</connection>
</ausregions_write>
<ausregions_read>
<connection>
<use>core_read</use>
</connection>
</ausregions_read>
</resources>
</global>
然后你需要编写你的 Helper 类:Package/Ausregions/Helper/Data.php
class Package_Ausregions_Helper_Data extends Mage_Core_Helper_Abstract
{
}
最后,将您的数据安装文件添加到:Package/Ausregions/data/ausregions_setup/data-install-0.1.0.php中,内容如下:
$installer = $this;
$data = array(
array('AU', 'ACT', 'Australian Capital Territory'),
array('AU', 'NSW', 'New South Wales'),
array('AU', 'NT', 'Northern Territory'),
array('AU', 'QLD', 'Queensland'),
array('AU', 'SA', 'South Australia'),
array('AU', 'TAS', 'Tasmania'),
array('AU', 'VIC', 'Victoria'),
array('AU', 'WA', 'Western Australia')
);
foreach ($data as $row)
{
$bind = array(
'country_id' => $row[0],
'code' => $row[1],
'default_name' => $row[2],
);
//First add data into "directory_country_region" table
$installer->getConnection()->insert($installer->getTable('directory/country_region'), $bind);
//Then get the last inserted ID for the regionID
$regionId = $installer->getConnection()->lastInsertId($installer->getTable('directory/country_region'));
$bind = array(
'locale' => 'en_US',
'region_id' => $regionId,
'name' => $row[2]
);
//Insert data into "directory_country_region_name" table
$installer->getConnection()->insert($installer->getTable('directory/country_region_name'), $bind);
}
这将添加州,当您在结帐页面上时,如果您选择国家澳大利亚,它将使用插入的州填充“州”下拉菜单。