Можно ли заменить адрес саоздания материала с node/add/news на news/node/add ? [Решено]

Главные вкладки

Аватар пользователя VasyOK VasyOK 4 февраля 2013 в 19:04

Всем привет!

Народ кто знает, можно ли при создании материала, чтобы адрес был не
node/add/news
а
news/node/add
или дургой, мне важно чтобы на news начинался

Комментарии

Аватар пользователя Alex Bacart Alex Bacart 5 февраля 2013 в 19:53

Код для семерки, в шестерке заместо этих двух хуков есть функция custom_url_rewrite_inbound.

/**
 * Implements hook_url_outbound_alter().
 */

function my_module_url_outbound_alter(&$path, &$options, $original_path) {
  if (preg_match('|^node/([0-9]+)/([^/]+)/?([^/]+)?|', $path, $matches) &&
      db_select('node')
      ->fields('node', array('type'))
      ->condition('nid', $matches[1])
      ->execute()
      ->fetchField() == 'news')
    if (isset($matches[3]))
      $path = "news/$matches[1]/$matches[2]/$matches[3]";
    else
      $path = "news/$matches[1]/$matches[2]";
}

/**
 * Implements hook_url_inbound_alter().
 */

function my_module_url_inbound_alter(&$path, $original_path, $path_language) {
  if (preg_match('|^news/([0-9]+)/([^/]+)/?([^/]+)?|', $path, $matches))
    if (isset($matches[3]))
      $path = "node/$matches[1]/$matches[2]/$matches[3]";
    else
      $path = "node/$matches[1]/$matches[2]";
}

Аватар пользователя BestFreelancer BestFreelancer 5 февраля 2013 в 20:14

В .htaccess пропиши следующие:

RewriteCond %{REQUEST_URI} ^/sitemap.xml - новый url
RewriteRule .* /index.php?option=com_xmap&view=xml&tmpl=component&id=1 - старый url

И будет тебе счастье

Аватар пользователя iNFerNo iNFerNo 6 февраля 2013 в 10:49

"Vydrin_AP" wrote:

Код для семерки, в шестерке заместо этих двух хуков есть функция custom_url_rewrite_inbound.

что то для 7ке не пашет такой вариант

Аватар пользователя vitaboss vitaboss 6 февраля 2013 в 10:52

Думаю, что это тоже очень близко к этой теме.

http://drupal.org/project/rename_admin_paths

This module allows you to:
rename path like '/admin/...' to '/something/...'
rename path like '/user/..' to '/something else/..'
It can be effective against registration spam bots or malicious people.
This small module just implements hook_outbound_alter and hook_inbound_alter to rename paths.
A settings form allows to choose replacement term for "admin" and "user".

Аватар пользователя VasyOK VasyOK 6 февраля 2013 в 11:21

Inferno, Из ридми модуля (страницы админки у модуля нет, нужно в админке модуля path)
(Site building >> URL aliases >> Add alias):
Existing system path: node/add/forum
Path alias: forum/node/add

В .htaccess приписал (может и не надо)
RewriteCond %{REQUEST_URI} =/node/add/forum
RewriteRule ^ http://%{HTTP_HOST}/forum/node/add [L,R=301]
RewriteCond %{REQUEST_URI} =/node/add/forum/*
RewriteRule ^ http://%{HTTP_HOST}/forum/node/add/* [L,R=301]

Вс встало как надо но почему то не сразу. Даже ссылки в админке.

Для 7- ки http://drupal.org/project/subpathauto

Аватар пользователя vitaboss vitaboss 6 февраля 2013 в 13:53

"iNFerNo" wrote:
а что без этого модуля не добавить синоним что ли?
---
вот же решение на поверхности =)

А что нужно было создать синоним?

"VasyOK" wrote:
Можно ли заменить адрес саоздания материала с node/add/news на news/node/add ?

В теме написано о замене.

Аватар пользователя iNFerNo iNFerNo 6 февраля 2013 в 14:10

"vitaboss" wrote:
А что нужно было создать синоним?

так в меню все равно старый вариант Lol в меню модуля админ_меню

Аватар пользователя vitaboss vitaboss 6 февраля 2013 в 14:29

понятно, тогда только синонимом.

вот этим модулем http://drupal.org/project/rename_admin_paths полность везде переименовывает /admin и /user
Теперь боты не знают куда стучаться и где страница регистрации/входа а регистрация разрешена всем, регистрируются исключительно нормальные люди.

Я так понимаю node/add/news переименовывать нужно было для подобных случаев. Вообще было бы неплохо решить не синонимом.

Аватар пользователя VasyOK VasyOK 6 февраля 2013 в 15:13

iNFerNo, после описанных выше операций и сброса кеша оно изменилось и в админ меню. Не сразу но изменилось, я тоже подумал об этом.

Аватар пользователя iNFerNo iNFerNo 6 февраля 2013 в 15:48

Нифига и чистка в бд таблиц кеша всех не помогло. Эх. Получается синоним тупо. А не замена. Смысла тогда в этом модуле нет. Но подождем пару дней может само как то обновится Lol в меню