EDIT - я получил лучшее представление
Я уезжаю мой первоначальный ответ ниже, но я думаю, что есть идея получше ... Вы могли бы реализовать hook_init()
в пользовательском модуле вашего или custom_url_rewrite_inbound()
в settings.php, чтобы разделить запрос страницы дефисной части, чтобы URL-адрес /article/1/my-title
был изменен на /article/1
все время. Псевдоним от узла/XXX к статье/XXX все равно будет выполнен pathauto.
Мой первоначальный ответ был:
Я не знаю, если есть модуль, который уже делает это, но добиться того, что вы хотите, довольно легко. Вы должны реализовать свою собственную версию hook_menu()
, определяющую функцию, которая будет инициироваться URL-адресом, начинающимся с «статьи» (например, «article/1/title-node»).
Для hook_menu каждый бит, разделенный косой чертой, является аргументом, который может быть передан обратному вызову, поэтому вы захотите передать обратный вызов номер (чтобы обратный вызов загрузил нужный узел) и отбросить все остальное ,
Предполагая, что вы используете Drupal 6 Вашего меню определение пункта должен выглядеть примерно так:
$item['article'] = array(
'title' => 'My URL article redirect',
'page callback' => 'name_of_my_callback_function',
'page arguments' => array(1), //this passess the second bit of the URL
'type' => MENU_CALLBACK,
);
Надеется, что это помогает!
Итак ...? Вы решили проблему с любым из ответов, приведенных ниже? Вы все еще в этом трудно? Или... ? – mac
Кстати, StackOverflow не использует Drupal - он основан на структуре ASP.NET MVC. – MaxVT