10

我有一个名为“产品”的菜单项,单击它会显示由“产品”内容类型创建的所有节点。每个“产品”节点都有一个附加文件的文件附件字段。

如果我单击“产品”节点,它将按预期将我带到该节点,我可以看到该节点上的所有字段,包括 PDF 字段:

在此处输入图像描述

我想将鼠标悬停在“产品”菜单链接上,然后将不同的产品视为菜单中的下拉菜单,当单击产品时,我希望它不转到节点,而是打开附加到节点的 PDF 所以改为显示例如/product/african-decor ...它必须转到附加到节点的product/african_decor.pdf:

在此处输入图像描述

4

2 回答 2

4

有几种方法可以实现这一点。


您可以使用Menu Token模块,该模块允许您在菜单路径中使用各种字段。在构建令牌模式时,您可能需要使用[site-url]令牌创建一个绝对 URL。

还要确保uses tokens选中复选框。


这种方式稍微不那么优雅。

假设您不想实际访问产品内容类型并且将始终下载 PDF,您可以覆盖product内容类型的模板并重定向到 PDF URL。

你需要创建

node--product.tpl.php

并将内容替换为

header("Location: " . $pdf_field);

// $pdf_field might be $node->field_pdf[0]['value'];
于 2015-11-13T17:48:20.303 回答
1

您可以使用自定义模块实现 hook_taxonomy_menu_path,并根据与术语关联的节点覆盖基础。在回调中,返回节点中附件的路径。

  • 鉴于每个术语只有一个节点
  • 鉴于每个节点只有一个附件
于 2015-11-12T13:07:23.100 回答