function download_download in Download 7
Same name and namespace in other branches
- 7.2 download.module \download_download()
1 string reference to 'download_download'
- download_menu in ./
download.module - Implements hook_menu().
File
- ./
download.module, line 201 - Handles module administration and download link
Code
function download_download($field_info) {
$prefix = array_shift(explode('.', $field_info));
list($nid, $delta) = explode('-', $prefix);
$lib_path = libraries_get_path('pclzip');
if (!is_dir($lib_path)) {
drupal_goto('node/' . $nid);
}
include $lib_path . '/pclzip.lib.php';
$archive = new PclZip(file_directory_temp() . '/' . $nid . '-' . $delta . '.zip');
$files = array();
$node = node_load($nid);
$fields = $node->field_download[LANGUAGE_NONE][$delta]['download_fields'];
$fieldnames = array_filter(explode(';', $fields));
foreach ($fieldnames as $fieldname) {
if (isset($node->{$fieldname})) {
foreach ($node->{$fieldname} as $field_array) {
foreach ($field_array as $field) {
$files[] = drupal_realpath($field['uri']);
}
}
}
}
$archive
->add($files, PCLZIP_OPT_REMOVE_ALL_PATH);
header("Content-Type: application/force-download");
header('Content-Description: File Transfer');
readfile(file_directory_temp() . '/' . $nid . '-' . $delta . '.zip');
exit;
}