У меня есть пункт меню под названием «Продукты», который при нажатии отображает все узлы, созданные типом контента «продукт». Каждый узел «product» имеет поле для прикрепления файла с вложенным файлом.
Если я щелкну на узле «product», он приведет меня к узлу, как и ожидалось, и я смогу увидеть все поля узла, включая поле PDF:
Я хочу навести курсор мыши на ссылку меню «Продукты», а затем увидеть различные продукты как раскрывающееся меню, и при нажатии на продукт я хочу, чтобы он НЕ переходил на узел, а скорее открывал PDF-файл, прикрепленный к узлу. Вместо этого например, / product / african-decor … он должен идти в product / african_decor.pdf, который прикреплен к узлу:
Это может быть достигнуто несколькими способами.
Вы можете использовать Жетон меню модуль, который позволяет использовать различные поля в ваших путях меню. При построении шаблона токена вам может потребоваться создать абсолютный URL-адрес, используя [site-url]
маркер.
Также убедитесь, что uses tokens
флажок отмечен
Этот способ немного менее элегантен.
Предполагая, что вы на самом деле не хотите посещать тип содержимого продукта и всегда будете загружать PDF, вы можете перезаписать шаблон для product
Тип содержимого и перенаправить на PDF-URL.
Вам нужно создать
node--product.tpl.php
И заменить содержимое на
header("Location: " . $pdf_field);
// $pdf_field might be $node->field_pdf[0]['value'];
Вы можете реализовать hook_taxonomy_menu_path с пользовательским модулем переопределить базу на основе узлов, связанных с термином. В обратном вызове верните путь вложения в узле.