Доброго времени суток!
В D6 для создания алисов терминам таксономии через pathauto был такой токен [catpath-raw](путь к термину вместе с родительскими терминами). В D7 я ничего не нашёл для повторения такого функционала. Может плохо искал. наваял маленький модуль, он даже работает как мне нужно. Но есть маленькая проблема - в настройках замены пришлось убрать действие для слеша, что не очень хорошо. Словарь для которого будет использоваться этот токен заполняется админами. Но там где пользовательский ввод наверное это чревато не правильными путями...
Вот модуль. Может кто подскажет как обойти этот слеш?
<?php
function token_extra_token_info() {
$info = array();
$info['tokens']['term']['catpath-raw'] = array(
'name' => t('catpath-raw'),
'description' => t('catpath-raw.'),
);
return $info;
}
function
token_extra_tokens($type, $tokens, array $data = array(), array $options = array()) {
$replacements = 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']);
if ($type == 'term' && !empty($data['term'])) {
$term = $data['term'];
foreach ($tokens as $name => $original) {
switch ($name) {
case 'catpath-raw':
$parent_terms = taxonomy_get_parents_all($term->tid);
reset($parent_terms);
$i = 0;
foreach ($parent_terms as $key => $term) {
if ($i <> 0) {$path = $term->name.'/'.$path;}
else {$path = $term->name;}
$i++;
}
$replacements[$original] = check_plain($path);
break;
}
}
}
return $replacements;
}
?>
Комментарии
Устанавливаем Entity APIв него входит модуль "entity tokens" который даст возможность для pathauto выбрать токен(ы) поля термина т.е. урл нужного тега.