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

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

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

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

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

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


person Granwille    schedule 29.10.2015    source источник
comment
Тег Drupal 7, в заголовке написано Drupal 6 — так какая у вас версия? Кроме того, я не очень понимаю, что вы хотите сделать. Вы хотите сделать ссылку на поле узла? Как якорь?   -  person Steff    schedule 10.11.2015
comment
Спасибо, ошибся, исправил.   -  person Granwille    schedule 11.11.2015


Ответы (2)


Этого можно добиться несколькими способами.


Вы можете использовать модуль Menu Token, который позволяет использовать различные поля в путях меню. При построении шаблона токена может потребоваться создать абсолютный 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'];
person Ben Swinburne    schedule 13.11.2015

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

  • Учитывая тот факт, что каждый терм имеет только один узел
  • Учитывая тот факт, что каждый узел имеет только одно вложение
person Steff    schedule 12.11.2015