При работе с private файлами в Drupal, можно использовать зацепку hook_file_download($uri), в которой вы можете реализовать проверку прав доступа к скачиваемому файлу. Но на входе функции — только uri, вместо fid, по которому было бы удобно вытащить всю информацию о файле.
В общем то понятно, что по uri можно вытащить данные из таблицы file_managed. Через апи этот запрос можно сформировать функцией file_load_multiple().
|
|
function HOOK_file_download($uri) { $files = file_load_multiple(array(), array('uri' => $uri)); // После анализа данных, полученных о файле, // нужно вернуть content-type файла или -1, // если доступ к файлу запрещен ... $access_enabled = true; if ($access_enabled) { return array('Content-Type' => file_get_mimetype($uri)); } else { // Access to the file is denied. return -1; } } |
Данная запись опубликована в 07.11.2017 13:19 и размещена в рубрике Drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Январь 25, 2022 г.
В Drupal 8 есть хорошая зацепка ко всей форме параграфа - hook_field_widget_WIDGET_TYPE_form_alter , а в семерке можно зацепляться за отдельные поля формы - hook_field_widget_form_alter.
Рассмотрим примеры реализации этих зацепок.
Drupal 7 ...
Читать
Февраль 22, 2024 г.
В Drupal 10 множество функций работы с файловой системой было собрано в сервис file_system. В том числе и drupal_mkdir была перенесена туда.
В общем случае это выглядит для D10 вот так:
[crayon-6a87c5a0af001918933760/]
Читать
Октябрь 24, 2024 г.
Пример кода работы с entityQuery и Entity API.
В данном примере мы пройдемся по синонимам терминов таксономии и произведем простую замену или создадим новый синоним согласно установленному в системе шаблону.
В 8ке синонимы (path_alias) - это ...
Читать
Ноябрь 15, 2019 г.
Типичная проблема при использовании модуля views - как вывести результат группировки, т.е. столбец вроде COUNT(*).
Это можно сделать штатными средствами ...
Читать