uc_addresses.install in Ubercart Addresses 6.2
Same filename and directory in other branches
Install file for Ubercart Addresses.
File
uc_addresses.installView source
<?php
/**
* @file
* Install file for Ubercart Addresses.
*/
/**
* Implementation of hook_schema().
*/
function uc_addresses_schema() {
$schema['uc_addresses'] = array(
'description' => t('Ubercart customer addresses'),
'fields' => array(
'aid' => array(
'description' => t('The address ID'),
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'uid' => array(
'description' => t('The ID of the user who owns this address'),
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'first_name' => array(
'description' => t('The addressee\'s first name'),
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
),
'last_name' => array(
'description' => t('The addressee\'s last name'),
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
),
'phone' => array(
'description' => t('The addressee\'s phone number'),
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
),
'company' => array(
'description' => t('The addressee\'s company name'),
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
),
'street1' => array(
'description' => t('The addressee\'s residence number and street'),
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
),
'street2' => array(
'description' => t('The addressee\'s residence number and street (continued)'),
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
),
'city' => array(
'description' => t('The addressee\'s city of residence'),
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
),
'zone' => array(
'description' => t('The addressee\'s zone of residence'),
'type' => 'int',
'size' => 'medium',
'not null' => TRUE,
'default' => 0,
),
'postal_code' => array(
'description' => t('The addressee\'s postal code'),
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
),
'country' => array(
'description' => t('The addressee\'s country of residence'),
'type' => 'int',
'size' => 'medium',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'address_name' => array(
'description' => t('The name used to access this address'),
'type' => 'varchar',
'length' => 20,
'not null' => FALSE,
),
'default_shipping' => array(
'description' => t('If the address is the default shipping address'),
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
),
'default_billing' => array(
'description' => t('If the address is the default billing address'),
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
),
'created' => array(
'description' => t('The date this address was created'),
'type' => 'int',
'not null' => TRUE,
'default' => 0,
),
'modified' => array(
'description' => t('The date this address was last modified'),
'type' => 'int',
'not null' => TRUE,
'default' => 0,
),
),
'indexes' => array(
'aid_uid_idx' => array(
'aid',
'uid',
),
),
'primary key' => array(
'aid',
),
);
return $schema;
}
/**
* Implementation of hook_install().
*
* @return void
*/
function uc_addresses_install() {
drupal_install_schema('uc_addresses');
$t = get_t();
// Setup default permissions.
// If the module 'permissions_api' is enabled, the authencated user will
// automatically be granted with the permissions 'view own addresses' and
// 'add/edit own addresses'.
if (module_exists('permissions_api')) {
permissions_grant_permissions('authenticated user', array(
'view own addresses',
'add/edit own addresses',
'delete own addresses',
));
drupal_set_message($t("Ubercart Addresses is installed. Since you had the module 'Permissions API' enabled, the authenticated user automatically was granted the permissions %view_own, %edit_own and %delete_own.", array(
'%view_own' => $t('view own addresses'),
'%edit_own' => $t('add/edit own addresses'),
'%delete_own' => $t('delete own addresses'),
)), 'status');
}
else {
drupal_set_message($t("Ubercart Addresses is installed. Now set up !permissions_link so users will be able to view, edit and delete addresses.", array(
'!permissions_link' => l($t('permissions'), 'admin/user/permissions', array(
'fragment' => 'module-uc_addresses',
)),
)), 'warning');
}
}
/**
* Implementation of hook_uninstall().
*
* Deletes variables used by uc_addresses.
*
* @return void
*/
function uc_addresses_uninstall() {
drupal_uninstall_schema('uc_addresses');
db_query("DELETE FROM {variable} WHERE name LIKE 'uc_addresses%'");
}
/**
* Upgrade from 6.x-1.x.
*
* The uc_addresses_defaults table will be removed. Two columns
* will be added to the uc_addresses table:<br />
* - default_shipping<br />
* - default_billing
*/
function uc_addresses_update_6200() {
$ret = array();
// Add 'default_shipping' and 'default_billing' fields.
db_add_field($ret, 'uc_addresses', 'default_shipping', array(
'description' => t('If the address is the default shipping address'),
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
'default' => 0,
));
db_add_field($ret, 'uc_addresses', 'default_billing', array(
'description' => t('If the address is the default billing address'),
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
'default' => 0,
));
// Get address defaults.
$default_aids = array();
$result = db_query('SELECT aid FROM {uc_addresses_defaults}');
while ($default = db_fetch_array($result)) {
$default_aids[] = $default['aid'];
}
// Update defaults.
if (count($default_aids) > 0) {
$query = "UPDATE {uc_addresses}\n SET default_shipping = 1, default_billing = 1\n WHERE aid in(" . implode(",", $default_aids) . ")\n ";
$ret[] = update_sql($query);
}
// Drop table uc_addresses_defaults.
db_drop_table($ret, 'uc_addresses_defaults');
drupal_set_message(t("Ubercart Addresses has new permissions. Please set up !permissions_link so users will be able to view, edit and delete addresses.", array(
'!permissions_link' => l(t('permissions'), 'admin/user/permissions', array(
'fragment' => 'module-uc_addresses',
)),
)), 'warning');
return $ret;
}
/**
* Renames "everyone's" permissions into "all" permissions.
*
* Apostrophes are not supported in permission names; saving permissions will
* fail on some systems.
*
* @see http://drupal.org/node/1412060
*/
function uc_addresses_update_6201() {
$ret = array();
$search = array(
"view everyone's default addresses",
"view everyone's addresses",
"add/edit everyone's addresses",
"delete everyone's addresses",
);
$replace = array(
'view all default addresses',
'view all addresses',
'add/edit all addresses',
'delete all addresses',
);
// permission.perm column contains a comma-separated string of permissions.
$query = "SELECT rid, perm FROM {permission} WHERE perm LIKE '%everyone\\'s%'";
$result = db_query($query);
while ($permissions = db_fetch_object($result)) {
$permissions->perm = str_replace($search, $replace, $permissions->perm);
$ret[] = update_sql("UPDATE {permission} SET perm = '" . db_escape_string($permissions->perm) . "' WHERE rid = {$permissions->rid}");
}
return $ret;
}
Functions
Name![]() |
Description |
---|---|
uc_addresses_install | Implementation of hook_install(). |
uc_addresses_schema | Implementation of hook_schema(). |
uc_addresses_uninstall | Implementation of hook_uninstall(). |
uc_addresses_update_6200 | Upgrade from 6.x-1.x. |
uc_addresses_update_6201 | Renames "everyone's" permissions into "all" permissions. |