function _uc_file_gather_files in Ubercart 8.4
Same name and namespace in other branches
- 6.2 uc_file/uc_file.module \_uc_file_gather_files()
- 7.3 uc_file/uc_file.module \_uc_file_gather_files()
Retrieves an updated list of available downloads.
1 call to _uc_file_gather_files()
- uc_file_refresh in uc_file/
uc_file.module - Removes non-existent files and update the downloadable list.
File
- uc_file/
uc_file.module, line 428 - Allows products to be associated with downloadable files.
Code
function _uc_file_gather_files() {
$file_config = \Drupal::config('uc_file.settings');
// Don't bother if the directory isn't set.
if (!($dir = $file_config
->get('base_dir'))) {
return;
}
// Grab files and prepare the base dir for appending.
$files = file_scan_directory($dir, $file_config
->get('file_mask'));
$dir = substr($dir, -1) != '/' || substr($dir, -1) != '\\' ? $dir . '/' : $dir;
$connection = \Drupal::database();
foreach ($files as $file) {
// Cut the base directory out of the path.
$filename = str_replace($dir, '', $file->uri);
$file_dir = dirname($filename);
$fid = NULL;
// Insert new entries.
if ($file_dir != '.' && !$connection
->query('SELECT fid FROM {uc_files} WHERE filename = :name', [
':name' => $file_dir . '/',
])
->fetchField()) {
$fid = $connection
->insert('uc_files')
->fields([
'filename' => $file_dir . '/',
])
->execute();
}
if (!$connection
->query('SELECT fid FROM {uc_files} WHERE filename = :name', [
':name' => $filename,
])
->fetchField()) {
$fid = $connection
->insert('uc_files')
->fields([
'filename' => $filename,
])
->execute();
}
// Invoke hook_uc_file_action().
if (!is_null($fid)) {
$file_object = uc_file_get_by_id($fid);
\Drupal::moduleHandler()
->invokeAll('uc_file_action', [
'insert',
[
'file_object' => $file_object,
],
]);
unset($fid);
}
}
}