При работе с 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Март 24, 2020 г.
Для отладки или выполнения какого то разового кода иногда требуется выполнить php код в системном окружении вашего сайта на Drupal.
Без drush приходится добавлять код вроде следующего в файл темы (а в последствии его удалять от туда):
[crayon-6aa328dc7511a550769200/] ...
Читать
Август 15, 2016 г.
Задача поиска и замены каких либо терминов в тексте кажется на первый взгляд довольно простой в PHP. Есть очень мощные инструменты вроде str_replace, а также поиск и замена с помощью регулярных выражений, например, preg_replace и preg_replace_callback. ...
Читать
Март 9, 2025 г.
На сайте всегда (или почти всегда) возникает задача управления настройками вроде телефон, email, какие то текстовые элементы, вроде копирайта, адрес организации и т.п.
С точки зрения данных - требуется объект в терминах шаблонов проектирования - синглтон. ...
Читать
Июнь 6, 2017 г.
Этот проект я не создавал, а переносил с одного движка на другой, попутно решая некоторые актуальные задачи. Почему возникла потребность в переносе?
...
Читать