function _redirect_migrate_path_redirect_redirects in Redirect 7
Same name and namespace in other branches
- 7.2 redirect.install \_redirect_migrate_path_redirect_redirects()
Migrate data and variables from the Drupal 6 path_redirect module.
1 string reference to '_redirect_migrate_path_redirect_redirects'
- redirect_install in ./
redirect.install - Implements hook_install().
File
- ./
redirect.install, line 367 - Install, update and uninstall functions for the redirect module.
Code
function _redirect_migrate_path_redirect_redirects(&$context) {
if (!isset($context['sandbox']['progress']) && db_table_exists('path_redirect')) {
$context['sandbox']['progress'] = 0;
$context['sandbox']['current_rid'] = 0;
$context['sandbox']['max'] = db_query('SELECT COUNT(rid) FROM {path_redirect}')
->fetchField();
$context['results']['skipped'] = array();
}
if (empty($context['sandbox']['max'])) {
$context['finished'] = 1;
return t('No redirects to migrate.');
}
// Ensure the redirect module is loaded since we need to use its functions.
drupal_load('module', 'redirect');
$query = db_query_range("SELECT * FROM {path_redirect} WHERE rid > :rid ORDER BY rid", 0, 25, array(
':rid' => $context['sandbox']['current_rid'],
));
foreach ($query as $old_redirect) {
$redirect = _redirect_migrate_path_redirect_redirect($old_redirect);
if (empty($redirect->success)) {
$context['results']['skipped'][$old_redirect->rid] = t('RID @rid: @from to @to', array(
'@rid' => $old_redirect->rid,
'@from' => redirect_url($redirect->source, $redirect->source_options),
'@to' => redirect_url($redirect->redirect, $redirect->redirect_options),
));
}
$context['sandbox']['progress']++;
$context['sandbox']['current_rid'] = $old_redirect->rid;
}
$context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
if ($context['finished'] >= 1) {
// Once finished, drop the old table.
db_drop_table('path_redirect');
// Migrate variables.
_redirect_migrate_path_redirect_variables();
// Remove the path_redirect entry from the system table.
db_delete('system')
->condition('name', 'path_redirect')
->execute();
// Record how many redirects were migrated, and how many were skipped.
$context['results']['skipped_count'] = count($context['results']['skipped']);
$context['results']['migrated'] = $context['sandbox']['progress'] - $context['results']['skipped_count'];
}
}