Drupal. Получить псевдоним пути из текущего URL без аргументов папки установки
Я хотел бы получить псевдоним текущей страницы без аргументов папки установки. Я использую:
drupal_get_path_alias(request_uri())
Но это возвращает установку / что угодно /фактическое / путь, и я хочу получить фактический / путь только независимо от того, что установка / что бы там ни было.
Заранее спасибо:)
7 ответов
Нашел это. На самом деле это была смесь обоих предложений:
$current_path = drupal_get_path_alias($_GET["q"]);
Спасибо хоть.
Обновление: предыдущее решение не всегда работает
Кто-то предложил использовать альтернативный метод:
str_replace(base_path(), '', drupal_get_path_alias(request_uri(), 1));
Но есть ли способ сделать то же самое, не используя немного дорогой str_replace?
Спасибо
Путь к узлу, на котором вы находитесь?
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'.
$current_page_url = drupal_get_path_alias( implode( '/', arg() ) );
также работает
Может быть, вы можете использовать base_path() и str_replace следующим образом:
str_replace (base_path(), '', drupal_get_path_alias(request_uri()), 1);
Base_path сохраняется в базе данных.
Вместо этого я склоняюсь к полному URL, чтобы избежать любых проблем, которые возникают, когда base_path() - это не просто '/'.
$url = (($_SERVER['HTTPS'])?"https://":"http://") . $_SERVER['HTTP_HOST'] . url($_GET['q']);
или даже проще:
$url = url($_GET['q'], array('absolute'=>true));
Самое быстрое решение.
substr(drupal_get_path_alias(request_uri(), 1), strlen(base_path()));
Чтобы передать это в аргумент
$arg = explode('/', substr(drupal_get_path_alias(request_uri(), 1), strlen(base_path())));