Хук на скачивание файла

Аватар пользователя Кришпер Кришпер 22 июля 2019 в 1:02

Всем привет. Есть тип материала, у него есть поле для архива, лежит оно в общем доступе
/sites/default/files/Screenshot_1.rar
То есть можно просто пройти по ссылке и получить файл.
А есть ли хук, который позволяет поймать запрос ещё до выдачи файлов? В общем, хочу сделать закрытую директорию под поля ноды и выдавать из неё файлы в зависимости от переменной в сессии юзера. Как такое в друпале правильно делается?

Лучший ответ

Аватар пользователя Кришпер Кришпер 22 июля 2019 в 1:35

Всё, нашёл хуки.

<?phpfunction my_module_file_download_access($file_item, $entity_type, $entity) {
    session_start();
    if (isset($_SESSION['tt'])==false) $_SESSION['tt'] = 3;

    if ($_SESSION['tt'] > 0) {
        $_SESSION['tt']--;
        return false;
    }

    $_SESSION['tt'] = 3;
    return true;
}

function my_module_node_access($node, $op, $account) {
    return NODE_ACCESS_ALLOW;
}?>

Комментарии

Аватар пользователя Кришпер Кришпер 22 июля 2019 в 1:13

А, нашёл. Создать приватную файловую систему в интерфейсе, в поле выбрать её, ок. А как теперь организовать всё-таки доступ к файлам у пользователя, у которого в сессии переменная с нужным значением?

Аватар пользователя Кришпер Кришпер 22 июля 2019 в 1:35

Всё, нашёл хуки.

<?phpfunction my_module_file_download_access($file_item, $entity_type, $entity) {
    session_start();
    if (isset($_SESSION['tt'])==false) $_SESSION['tt'] = 3;

    if ($_SESSION['tt'] > 0) {
        $_SESSION['tt']--;
        return false;
    }

    $_SESSION['tt'] = 3;
    return true;
}

function my_module_node_access($node, $op, $account) {
    return NODE_ACCESS_ALLOW;
}?>