Если вы вызываете hook_menu_link_alter, тогда вы можете установить $item['options']['alter'] = TRUE;
для каждого пункта меню - вам нужно будет отредактировать пункт меню для вызова этого ловушки и установить для разрешения alter значение true.
Как только это будет установлено, то будет вызываться hook_translated_menu_link_alter перед тем, как будет отображаться каждый элемент меню, что позволяет вам изменить заголовок пункта меню.
Пример кода будет:
function MY_MODULE_menu_link_alter(&$item) {
$item['options']['alter'] = TRUE;
}
function MY_MODULE_translated_menu_link_alter(&$item, $map) {
if($item['mlid']==89) {
$item['title'] .= ' ('.get_number_of_messages_in_inbox().')';
}
}
Единственным ограничением этого является то, что hook_menu_link_alter помечает каждую ссылку как изменяемую, что не обязательно желательно (отрицательно влияет на производительность) - некоторые дополнительные проверки на элементе $ здесь означают, что вы отмечаете только те пункты меню, которые вы хотите изменить. .