【问题标题】:Drupal. Get path alias from current url without the installation's folder arguments德鲁巴。从当前 url 获取路径别名,没有安装的文件夹参数
【发布时间】:2010-06-08 14:34:52
【问题描述】:

我想在没有安装文件夹参数的情况下检索当前页面路径别名。 我正在使用:

drupal_get_path_alias(request_uri())

但是这会返回安装/whatever/actual/path,我只想检索 actual/path,无论 installation/whatever是。

提前致谢:)

【问题讨论】:

    标签: drupal drupal-path-aliases


    【解决方案1】:

    找到了。它实际上是两种建议的混合:

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

    谢谢。


    更新:以前的解决方案并不总是有效

    有人建议使用另一种方法:

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

    但是,有没有办法在不使用稍微昂贵的 str_replace 的情况下做同样的事情?

    谢谢

    【讨论】:

      【解决方案2】:

      你所在节点的路径?

      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' 查询字符串值。

      【讨论】:

        【解决方案3】:

        也许你可以像这样使用 base_path() 和 str_replace :

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

        base_path 保存在数据库中。

        【讨论】:

        • 如果不是因为拼写错误,这也适用于任何类型的页面。固定版本为:str_replace(base_path(), '', drupal_get_path_alias(request_uri(), 1));
        • 我的意图是找到一种不使用 str_replace 的方法。有什么想法吗?
        • 为什么要向 drupal_get _path_alias 添加参数?
        • 检索当前网址,不是吗?
        【解决方案4】:
        $current_page_url = drupal_get_path_alias( implode( '/', arg() ) );
        

        也可以

        【讨论】:

          【解决方案5】:

          你试过$_GET['q']吗?

          【讨论】:

          • 返回路径,而不是别名。不过谢谢,我已经找到了。
          • 启用全局重定向模块,路径应该始终是别名的路径。
          • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
          • @netcoder 您可以考虑答案“尝试 $_GET['q']”,然后。你真的要为此碰一个两年前的帖子吗?
          • @ceejayoz:不,它是自动发布 cmets 的审核工具。清除标记的答案,这可能应该是评论。
          【解决方案6】:

          我倾向于使用完整的 url 来避免当 base_path() 不只是 '/' 时出现的任何问题。

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

          或者更简单:

          $url = url($_GET['q'], array('absolute'=>true));
          

          【讨论】:

            【解决方案7】:

            最快的解决方案。

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

            将其传递给参数

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-06-12
              • 2016-09-18
              • 1970-01-01
              • 1970-01-01
              • 2023-01-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多