Drupal menu_link с узлом / номером вместо псевдонима
У меня проблема:
function drupal_menu_link($variables) {
$element = $variables['element'];
$sub_menu = $element['#below'] ? drupal_render($element['#below']) : '';
return '<a href="/drupal/'.$element['#href'].'" title = "'.$element['#title'].'" ><li' . drupal_attributes($element['#attributes']) . '>' . $element['#title'] .'</li></a>';
}
Как я могу использовать псевдонимы, а не hrefs? При наведении на элемент я вижу узел / номер вместо псевдонима. Я сделал перенаправление, но это происходит после клика. Кто-нибудь может мне помочь? Я искал это в других темах, но я плох в этом, и я просто не понимаю, как это работает.
2 ответа
Чтобы преобразовать узел /{число} - url в существующий url_alias, вы можете использовать метод url.
return '<a href="/drupal/'.url($element['#href']).'" title = "'.$element['#title'].'" ><li' . drupal_attributes($element['#attributes']) . '>' . $element['#title'] .'</li></a>';
Лучше было бы использовать метод l для генерации полной ссылки:
return l($element['#title'], $element['#href'], array('attributes'=>$element['#attributes']));
Чтобы вернуть псевдоним пути, используйте drupal_get_path_alias
drupal_get_path_alias("node/" . $nid);