Как связать ссылку node непосредственно с содержимым файла в DRUPAL 6?

У меня есть пункт меню "Продукты", который при нажатии показывает все узлы, созданные типом контента "продукт" . Каждый "продукт" node имеет поле прикрепления файла с прикрепленным файлом.

Если я нажму на "продукт" node, он приведет меня к node, как и ожидалось, и я могу увидеть все поля в node, включая поле PDF:

введите описание изображения здесь

Я хочу навести курсор мыши на ссылку меню "Продукты", а затем увидеть различные продукты в виде выпадающего меню и при щелчке по продукту. Я хочу, чтобы он НЕ пошел в node, а скорее открыл прилагаемый PDF файл на node Итак, вместо показа eg/product/african-decor... он должен перейти к product/african_decor.pdf, который прикреплен к node:

введите описание изображения здесь

Ответ 1

Есть несколько способов, которыми это может быть достигнуто.


Вы можете использовать "Значок меню" , который позволяет вам использовать различные поля в ваших путях меню. При создании шаблона маркера вам может понадобиться создать абсолютный URL-адрес, используя токен [site-url].

Также убедитесь, что установлен флажок uses tokens.


Этот способ немного менее изящный.

Предполагая, что вы не хотите на самом деле посещать тип содержимого продукта и всегда будете загружать PDF файл, вы можете перезаписать шаблон для типа контента product и перенаправить на URL-адрес PDF.

Вам нужно создать

node--product.tpl.php

И замените содержимое

header("Location: " . $pdf_field);

// $pdf_field might be $node->field_pdf[0]['value'];

Ответ 2

Вы можете реализовать hook_taxonomy_menu_path с помощью настраиваемого модуля переопределить базу на основе узлов, связанных с этим термином. В обратном вызове верните путь к вложению в node.

  • Учитывая, что каждый член имеет только один node
  • Учитывая, что каждый node имеет только одно вложение