代码之家  ›  专栏  ›  技术社区  ›  jonstjohn

如何以编程方式输出Drupal节点链接的自定义路径(不带PathAuto)?

  •  2
  • jonstjohn  · 技术社区  · 16 年前

    我希望能够

    一个例子是:

    我正在使用 Drupal 5.x 我会的 不希望使用PathAuto (如果没有必要,我不想存储数十万个路径别名)

    4 回复  |  直到 16 年前
        1
  •  5
  •   Sean McSomething    16 年前

    Drupal有一个内部机制,可以将“/node/1234/”映射到“/blogs/看看我的猫刚刚做了什么”。它是核心系统的一部分,几乎在任何地方、任何请求时都可以使用,你甚至不必问。它足够快,你几乎永远不会注意到它的发生——在drupal中还有很多其他东西——慢得多。

    如果你担心url在前端的显示方式,你应该使用url()函数(以及对节点内容执行相同操作的过滤器)来处理相反的查找。

    Pathauto的作用是,当您创建或编辑内容时,它将在Drupal的url_alias表中生成许多条目(基于您创建的任何Pathauto规则)。这是一次性费用。除非你以天文数字的速度生成内容,否则这样做的成本可以忽略不计。

    除非您对要将节点映射到的URL类型有一些非常奇怪的要求,否则您所做的任何事情都只会重新创建Pathauto现有功能的子集(并可能引入一堆新错误)。

        2
  •  0
  •   Niels    16 年前

    1. 使用“保存'your-type'类型的内容之前”事件创建规则
    2. 添加一个php操作,然后创建自定义路径并执行以下操作:
    3. 点击保存,就完成了

    如果不想使用rules模块,可以在自定义模块中使用hook_node_preseave

        3
  •  0
  •   greggles    16 年前

    虽然Pathauto可能是最佳选择,但您可以使用hook_menu函数将URL挂载到方法。该方法可以根据URL以编程方式找到所需的节点。

    推荐文章