Вы можете создать видимый пункт меню с помощью hook_menu () , если вы установите его тип в MENU_NORMAL_ITEM. Кроме того, вы можете вкладывать эти пункты меню, определяя путь, который включает путь родительского элемента. Например, «mycontenttype / 2010» будет дочерним элементом меню «mycontenttype» (я полагаю, что вы также можете вручную установить отношения родитель / потомок, используя форму администрирования меню Drupal. Вы также можете установить меню, к которому должен быть добавлен элемент значение 'menu-item' для автоматического добавления его в первичные ссылки вместо навигации.
Что касается создания нового пункта меню всякий раз, когда узел создается с новым годом, вам придется немного поиграться с ним. Я думаю, было бы легко определить, какие уникальные годы доступны для узлов этого типа (используя представление или запрашивая базу данных вручную). Чтобы обновить таблицы меню при добавлении нового пункта меню, вы можете вызвать menu_rebuild () .
Я думаю, что способ соединить все это вместе - написать функцию hook_menu для запроса к базе данных, чтобы найти уникальные даты создания и создать пункт меню для каждого года. В вашем hook_nodeapi проверьте, является ли созданный год новым (должны быть способы оптимизировать его, чтобы он не вызывался каждый раз, когда вы создаете узел, но я оставлю это вам). Если это новый год, очистите таблицы меню (menu_rebuild), чтобы воссоздать пункты меню и включить одну для нового года.