Ciao a tutti.. Ho sviluppato una funziona hook_file_download($file) con un modulo apposito. In questa funzione vengono assegnati dei permessi per i download dei file, questi (permessi) sono relativi al nodo di cui fa parte il file che si vuole scaricare, cioè:
function miomodulo_file_download($file) {
global $user;
$filepath = file_create_path($file);
$fid = db_result(db_query('SELECT fid FROM {files} WHERE filepath = "%s" ', $filepath));
$nid = db_result(db_query('SELECT nid FROM {content_field_campofile} WHERE field_campofile_fid = %d ', $fid));
if (db_result(db_query("SELECT COUNT(*) FROM {comments} WHERE nid=%d and uid=%d", $nid, $user->uid)) > 0)
{
if( db_result(db_query("SELECT COUNT(*) {files_download} WHERE uid=%d AND nid=%d ", $user->uid, $nid)) == 0 )
db_query("INSERT INTO {files_download} (uid, nid) VALUES (%d, %d)", $user->uid, $nid);
return ;
}
else
{
return -1;
}
Io recupero il nid relativo al file che voglio scaricare attraverso le query che ho scritto. Però ho notato che il controllo sull'if non va a buon fine perchè il nid risulta sempre essere =0. Infatti se inserisco in una tabella ad hoc (files_download) l'uid di chi scarica e il nid relativo al file, l'uid viene inserito correttamente, mentre il nid risulta sempre 0. Come posso risolvere?
helpppppppppppppp
http://www.domuspisa.it
http://www.sicarstudio.it
Parlo da niubbissimo...
Non è che devi passare alla funzione anche l'oggetto node?
$node->nid
Follow me @DarthDrupal and @Dinamicamente.org
Dinamicamente.org
grazie mille per il tentativo :) almeno non mi sento abbandonato... Però non si può perchè le funzioni hook sono predefinite e vengono chiamate automaticamente da drupal quando si vuole fare una certa azione in questo caso il download.. quindi non posso dirgli di passare anche $node->nid..
http://www.domuspisa.it
http://www.sicarstudio.it