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);
Другие вопросы по тегам