'administer locationmap', 'edit gmaplocation' => 'administer locationmap', 'administer gmaplocation' => 'administer locationmap' ); // Loop over all the changes, performing necessary updates. foreach ($replace as $old_permission => $new_permission) { db_update('role_permission') ->fields(array('permission' => $new_permission, 'module' => 'locationmap')) ->condition('rid', 3, '<>') ->condition('permission', $old_permission) ->execute(); } // Update any URL aliases previously set for gmaplocation to point to locationmap. db_update('url_alias') ->fields(array('source' => 'locationmap')) ->condition('source', 'gmaplocation') ->execute(); // Create locationmap variables. If gmaplocation variables exist, set to those values. variable_set('locationmap_address', variable_get('gmaplocation_address')); variable_set('locationmap_block_text_top', variable_get('gmaplocation_block_text_top')); variable_set('locationmap_body', variable_get('gmaplocation_body')); variable_set('locationmap_footer', variable_get('gmaplocation_footer')); variable_set('locationmap_height', variable_get('gmaplocation_height')); variable_set('locationmap_info', variable_get('gmaplocation_info')); variable_set('locationmap_key', variable_get('gmaplocation_key')); variable_set('locationmap_lat', variable_get('gmaplocation_lat')); variable_set('locationmap_lng', variable_get('gmaplocation_lng')); variable_set('locationmap_title', variable_get('gmaplocation_title')); variable_set('locationmap_type', variable_get('gmaplocation_type')); variable_set('locationmap_width', variable_get('gmaplocation_width')); variable_set('locationmap_zoom', variable_get('gmaplocation_zoom')); // Remove redundant gmaplocation variables. variable_del('gmaplocation_address'); variable_del('gmaplocation_block_text_top'); variable_del('gmaplocation_body'); variable_del('gmaplocation_footer'); variable_del('gmaplocation_height'); variable_del('gmaplocation_info'); variable_del('gmaplocation_key'); variable_del('gmaplocation_lat'); variable_del('gmaplocation_lng'); variable_del('gmaplocation_title'); variable_del('gmaplocation_type'); variable_del('gmaplocation_width'); variable_del('gmaplocation_zoom'); // hook_update_N() no longer returns a $ret array. Instead, return // nothing or a translated string indicating the update ran successfully. // See http://drupal.org/node/224333#update_sql. return t('Upgraded any legacy permissions and variables from gmaplocation module to locationmap.'); } /** * Change maps API v2 variables to v3 values. * Unset the API key var, as it's not required any more. */ function locationmap_update_105() { $locationmap_type = variable_get('locationmap_type', ''); // Only do anything if this is set if ($locationmap_type) { // Maps old values to new values: $locationmap_type_new = array( 'G_NORMAL_MAP' => 'google.maps.MapTypeId.ROADMAP', 'G_SATELLITE_MAP' => 'google.maps.MapTypeId.SATELLITE', 'G_HYBRID_MAP' => 'google.maps.MapTypeId.HYBRID', ); // Only reset this if it's a value we can translate: if (isset($locationmap_type_new[$locationmap_type])) { variable_set('locationmap_type', $locationmap_type_new[$locationmap_type]); } } // We don't need this any more variable_del('locationmap_key'); } /** * Implementation of hook_uninstall. * @see http://drupal.org/node/1354 */ function locationmap_uninstall() { variable_del('locationmap_address'); variable_del('locationmap_block_text_top'); variable_del('locationmap_body'); variable_del('locationmap_footer'); variable_del('locationmap_height'); variable_del('locationmap_info'); variable_del('locationmap_key'); variable_del('locationmap_lat'); variable_del('locationmap_lng'); variable_del('locationmap_title'); variable_del('locationmap_type'); variable_del('locationmap_width'); variable_del('locationmap_zoom'); }