Country Import File Structure

For a more detailed explanation, view:


// $Id$

* First implement hook_install() using the name of the country as the base of
* the function name.

function example_country_install() {
// Make the entry in the country table.
  // VALUES = Country ID, Country Name, 2-digit Code, 3-digit Code, File Version
db_query("INSERT INTO {uc_countries} VALUES (999, 'Example Country', 'EC', 'EXC', 2)");


// Make the entries in the zones table.  Use %d for the zone_id and the
  // function uc_get_zone_ids($num) as the second argument for db_query() where
  // $num is the number of zones in the INSERT query.
  // VALUES = %d for ID, Parent Country ID, Zone Abbreviation, Zone Name
db_query("INSERT INTO {uc_zones} VALUES "
."(%d, 999, 'Z1', 'Zone 1'),"
."(%d, 999, 'Z2', 'Zone 2'),"
."(%d, 999, 'Z3', 'Zone 3')",


// Use uc_set_address_format() with the country ID as the first argument and
  // an address format string as the second.
"!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !zone_code !postal_code\r\n!country_name_if");

* If necessary, implement hook_update() with $version being the only argument.
* Add a new case for each version update, and be sure to always include the
* latest changes in the install function.
function example_country_update($version) {
// Use a switch control block for easy file maintenance.
switch ($version) {
// Obviously this would be replaced with actual update code.
drupal_set_message('Performing update 2.');

* If necessary, implement hook_uninstall().  This requires no argument.  The
* store module automatically removes rows from the country and zones tables
* related to the country, and it unsets the address format.  This function is
* only necessary for other things you may have included in your country's
* installation process.
function example_country_uninstall() {