Замена в слова «node» в адресе документа на любое другое



По умолчанию, после названия домена, Drupal добавляет слово node. Но его можно заменить любым другим словом. Делается это следующим образом.

Добавьте в файл settings.php следующий код:

function custom_url_rewrite($type, $path, $original) {
  if ($path != $original) {
   return $path; }
  if ($type == 'source') {
   return preg_replace('!^document/(\d+)$!', 'node/\1', $path); }
  elseif ($type == 'alias') {
   return preg_replace('!^node/(\d+)$!', 'document/\1', $path); }
}

Этот пример заменит слово node на document.

Примечание

По умолчанию этот файл доступен только для чтения, поэтому сначала разрешите запись в этот файл, а после внесения изменений обязательно верните атрибут «только для чтения» обратно.

Comments

Очень хорошее решение. Только приведенный сниппет заменяет node на document только при просмотре документа, а вот при редактировании все равно остается node. Что нужно еще дописать в сниппете, чтобы и при редактировании было слово document?

Не проверял, но должно работать

<?php
function custom_url_rewrite($type, $path, $original) {
  if (
$path != $original) {
    return
$path; }
  if (
$type == 'source') {
    return
preg_replace('!^document/(\d+)(.*)$!', 'node/\1\2', $path); }
  elseif (
$type == 'alias') {
    return
preg_replace('!^node/(\d+)(.*)$!', 'document/\1\2', $path); }
}
?>

меня смущает отсутствие слеша или четкого расширения файла (htm) в конце названия файла, получается так можно дописывать это в конце пути, я прав?

Post new comment

The content of this field is kept private and will not be shown publicly.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.