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

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

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

0 Thanks

Лучший ответ

Аватар пользователя Кришпер Кришпер 22 июля в 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 июля в 1:13

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

Аватар пользователя Кришпер Кришпер 22 июля в 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;
}
?>