Лучший способ (по моему мнению) иметь одинаковые псевдонимы URL:
1> установить модуль url_alias.
2> настроить узлы с шаблонами, подобными drupal6.Теперь этот шаг может вас беспокоить, если к новым URL-псевдонимам прикреплены nids. (Как в моем случае).
В качестве решения мы можем пойти дальше и создать собственные токены, используя код, в котором источникИдентификатор может быть получен из таблиц переноса карты на основе легко доступных новых идентификаторов назначения.
Теперь мы можем приступить к массовому генерированию псевдонимов url.
Пример создания такогоПользовательский токен будет выглядеть следующим образом:
/**
* Implements hook_token_info().
*/
function custom_configuration_token_info() {
$type = array(
'node' => array (
'name' => t('Nodes'),
'description' => t('Tokens related to individual nodes.'),
'needs-data' => 'node',
),
'term' => array(
'name' => t('Taxonomy Terms'),
'description' => t('Tokens related to taxonomy terms.'),
'needs-data' => 'term',
)
);
// tokens for node legacy nid.
$tokens['node']['mapid'] = array(
'name' => t("mapid"),
'description' => t("The nid of the node prior to migration."),
);
$tokens['term']['mapid'] = array(
'name' => t('mapid'),
'description' => t('The tid of taxonomy terms prior to migration.'),
);
return array(
'types' => $type,
'tokens' => $tokens,
);
}
now,
function custom_configuration_tokens($type, $tokens, array $data = array(), array $options = array()) {
$url_options = array('absolute' => TRUE);
if (isset($options['language'])) {
$url_options['language'] = $options['language'];
$language_code = $options['language']->language;
}
else {
$language_code = NULL;
}
$sanitize = !empty($options['sanitize']);
$replacements = array();
if ($type == 'node' && !empty($data['node'])) {
$node = $data['node'];
foreach ($tokens as $name => $original) {
switch ($name) {
<write your custom code for the token conditioned by the name attribute in info function>
}
}
}
При написании пользовательского кода вам также понадобится устаревшая таблица.Drupal 7 поддерживает несколько баз данных, поэтому просто настройте устаревшие учетные данные таблицы в файле settings.php.
Используйте drupal_set_active при извлечении данных из разных таблиц.
Спасибо.