Drupal.Получить псевдоним пути из текущего URL без аргументов папки установки - PullRequest
4 голосов
/ 08 июня 2010

Я бы хотел получить псевдоним текущей страницы без аргументов папки установки.Я использую:

drupal_get_path_alias(request_uri())

Но это возвращает установку / что угодно / факт / путь , и я хочу получить факт / путь только несмотря ни на что1008 * установка / что бы не было.

Заранее спасибо:)

Ответы [ 7 ]

9 голосов
/ 08 июня 2010

Нашел это. На самом деле это была смесь обоих предложений:

$current_path = drupal_get_path_alias($_GET["q"]);

Спасибо, хотя.


Обновление: предыдущее решение не всегда работает

Кто-то предложил использовать альтернативный метод:

str_replace(base_path(), '', drupal_get_path_alias(request_uri(), 1));

Но есть ли способ сделать то же самое без использования немного дорогого str_replace? Спасибо

2 голосов
/ 08 июня 2010

Путь к узлу, на котором вы находитесь?

http://api.drupal.org/api/function/drupal_get_path_alias/6

if ($node || (arg(0) == 'node' && arg(2) != 'edit')) {
   $system_path = 'node/'.arg(1);
   $current_path = drupal_get_path_alias($system_path);
}

Этот код будет срабатывать на страницах узлов и сообщать вам псевдоним страницы.

Для получения дополнительной информации вы можете вывести $ _GET и посмотреть значение строки запроса 'q'.

1 голос
/ 23 марта 2011
$current_page_url = drupal_get_path_alias( implode( '/', arg() ) );

тоже работает

1 голос
/ 08 июня 2010

Может быть, вы можете использовать base_path () и str_replace так:

str_replace (base_path(), '', drupal_get_path_alias(request_uri()), 1);

base_path сохраняется в базе данных.

0 голосов
/ 04 марта 2014

Самое быстрое решение.

substr(drupal_get_path_alias(request_uri(), 1), strlen(base_path()));

Чтобы передать это в аргумент

$arg = explode('/', substr(drupal_get_path_alias(request_uri(), 1), strlen(base_path())));

0 голосов
/ 14 сентября 2011

Вместо этого я склоняюсь к полному URL, чтобы избежать любых проблем, которые возникают, когда base_path () не просто

$url = (($_SERVER['HTTPS'])?"https://":"http://")  .  $_SERVER['HTTP_HOST'] . url($_GET['q']);

или даже проще:

$url = url($_GET['q'], array('absolute'=>true));
0 голосов
/ 08 июня 2010

Вы пробовали $_GET['q']?

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