【问题标题】:Breaking up Drupal's node url分解 Drupal 的节点 url
【发布时间】:2011-05-01 18:02:01
【问题描述】:

我想分解 Drupal 6 中的 url 变量,以便在 $base_url 和路径的其余部分之间放置一个目录名称。关于如何做到这一点的任何想法?

谢谢, 简

【问题讨论】:

    标签: php url variables drupal-6


    【解决方案1】:

    嗯,听起来您已经知道 $base_url,所以您需要的部分是内部路径,您可以使用$path = arg(); 检索它。

    但是,我不知道您希望通过这样做来实现什么。假设你有一个这样的drupal URL:

    http://www.example.com/node/76

    这实际上是 THIS url 的别名:

    http://www.example.com/index.php?q=node/76

    node/76部分是内部drupal路径,根文件夹中的.htaccess文件删掉了index.php?q=位以获得更简洁的url。

    所以如果你像这样构造一个 URL:

    http://www.example.com/directory/node/76

    它实际上会指向:

    http://www.example.com/index.php?q=directory/node/76

    然后会失败,因为 Drupal 会尝试将 directory/node/76 视为内部 Drupal 路径,但找不到它——因此您会收到 404 错误。

    你想做什么?

    【讨论】:

    • 感谢您的回复!假设我有以下 url:example.com/about/history,我想在example.com 和 about/history 之间添加一个目录名称,最终得到类似 example.com/content/about/history 的内容,所以我知道我可以写类似 $base_url/ 的内容content/... 但是对于 url 的其余部分是否存在现有变量?感谢您的帮助!
    • 这里的最终目标是什么?如果我对您要完成的工作有更清楚的了解,我可以给您一个更好的答案。例如,您需要以这种方式更改多少页?你在使用 template.php 吗?或者改变一个模块?还是通过管理界面工作?如果你有一个代码 sn-p 你可以给我看,那也会有帮助(请编辑原始问题)。
    • 我想将用户指向该页面的打印友好版本。打印友好版本将放置在备用目录中,因此需要将目录名称添加到路径中。或者,我可以只使用现有的打印友好模块,但要以我想要的方式定位它,我的理解是我需要使用 $node 而不是 $content 来完全自定义内容在页面上的显示方式.而且,嗯,这是我还没有掌握的东西! :-)
    • @Jane 你说得对,有现有的模块,即drupal.org/project/print,它会生成像example.com/print/42 这样的url(42 = 节点ID)。您要自定义的页面上内容的外观是怎样的?通常,这可以通过将 print.tpl.php 从 modules/print 复制到您的主题目录并编辑它来处理,而无需直接更改底层变量。要自行修改打印友好链接,请使用您自己的主题函数覆盖 theme_print_format_link()
    • 是的,我实际上想过使用你提到的打印模块,它确实工作得很好......唯一的事情是我想把它放在 $content 区域之外的一个盒子里人们通常会找到的元素,例如在社交媒体网站上共享等。否则,有没有办法可以将我的其他自定义元素与 print 放在 $content 区域内?非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    相关资源
    最近更新 更多