Как программно вывести пользовательские пути для ссылок на узлы Drupal (без PathAuto)? - PullRequest
0 голосов
/ 03 июня 2009

Я хотел бы иметь возможность программно изменить выводимый путь к узлу Drupal без использования модуля PathAuto . В настоящее время мы обрабатываем большой объем контента (тысячи статей в день), который добавляется на серверную часть. Вместо того, чтобы использовать PathAuto для генерации псевдонимов пути, я хотел бы, чтобы Drupal выводил ссылку по умолчанию, но добавил частичный заголовок для лучшего SEO.

Примером этого будет:

/ узел / 123

будет изменено на

/ node / 123 / This-is-the-article-title (этот путь в настоящее время будет работать для существующего узла)

Я понимаю, как сделать это на основе темы, изменив шаблоны темы / представления, но я хотел бы сделать так, чтобы в любое время, когда ссылка на узел отображалась где-либо, добавлялся заголовочный плагин.

Кроме того, я хотел бы ограничить его определенным типом контента (например, «статья»).

Я использую Drupal 5.x , и я бы предпочел не использовать PathAuto (я не хочу хранить сотни тысяч псевдонимов путей, если в этом нет необходимости)

Я ищу решение, которое не использует PathAuto

Ответы [ 3 ]

5 голосов
/ 03 июня 2009

Drupal имеет внутренний механизм для отображения из "/ node / 1234 /" в "/ blogs / look-at-my-cat-just-did". Он является частью базовой системы и используется практически везде, при каждом запросе, даже без необходимости спрашивать. Это достаточно быстро, вы почти никогда не заметите, что это происходит - в друпале есть множество других вещей, которые намного медленнее.

Если вы беспокоитесь о том, как URL-адреса отображаются во внешнем интерфейсе - вы должны использовать функцию url () (и фильтры, которые делают то же самое с содержимым узла) для обработки поиска, идущего в другую сторону.

Смысл Pathauto заключается в том, что когда вы создаете или редактируете контент, он генерирует несколько записей в таблице url_alias в Drupal (основываясь на любых созданных вами правилах pathauto). Это единовременная стоимость. Если вы не генерируете контент с астрономической скоростью - с этим связаны незначительные затраты.

Вы уже оплачиваете поиск псевдонимов URL, просто используя Drupal. Без взлома ядра вы не сможете этого избежать. Хранение «сотен тысяч псевдонимов путей» в базе данных не такая уж большая проблема - если разбить это на фактические требования к хранилищу, вы увидите только несколько мегабайт. Поскольку таблица хорошо проиндексирована, поиск будет практически мгновенным. Это основная функциональность, которая происходит независимо от того, находится ли Pathauto в вашей системе.

Если у вас нет очень странных требований к типам URL-адресов, к которым вы хотите привязать свои узлы, все, что вы будете делать, будет просто воссоздавать подмножество существующих функций Pathauto (и, вероятно, вносить кучу новых ошибок).

0 голосов
/ 24 июня 2009

Вы можете попробовать использовать эти две функции:

http://api.drupal.org/api/function/custom_url_rewrite_outbound http://api.drupal.org/api/function/custom_url_rewrite_inbound

Но на самом деле, Pathauto - "правильный" способ сделать это.

0 голосов
/ 22 июня 2009

Хотя Pathauto, вероятно, является лучшим выбором, вы можете использовать функцию hook_menu для монтирования URL-адреса к методу. Этот метод может программно найти нужный вам узел по URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...