При работе с 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Апрель 9, 2025 г.
Неприятная особенность CKEditor - добавляет в пустые контейнера (в <div>,<p> и т.п.) html код неразрывного пробела.
Покажу как можно от этого избавиться через код в кастомном плагине для CKEditor 5 в экосистеме Drupal 8+.
Нам понадобится ...
Читать
Сентябрь 6, 2016 г.
Начиная с версии PHP 4.3.0, функция mysql_escape_string() считается устаревшей. PHP будет выдавать соответствующее предупреждение.
Deprecated function: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.
Т.е. ...
Читать
Март 13, 2025 г.
Если не хочется объявлять дополнительный регион, чтобы настроить вывод блока через админку, то можно сделать рендер блока программно.
Например добавим в препроцессинг страницы переменную с рендером блока branding. Этот блок предоставляется модулем ...
Читать
Июль 14, 2023 г.
Как без хуков preprocess в Drupal добавить, например, атрибут target для ссылки в шаблоне?
Например, возьмем штатный шаблон file-link.html.twig:
[crayon-6a2cb80f9073e332318680/]
Используем фильтр merge, добавляя нужные атрибуты:
[crayon-6a2cb80f90745040516729/]
Читать