function private_files_download_permission_list_directories in Private files download permission 7.2
(Page callback.) Displays the main page and lists directories under control.
1 string reference to 'private_files_download_permission_list_directories'
File
- ./
private_files_download_permission.module, line 157 - Handles both module settings and its behaviour.
Code
function private_files_download_permission_list_directories() {
$output = '';
// Check if file system download method is set to private.
if ('private' !== file_default_scheme()) {
drupal_set_message(t('Your !default_download_method is not set as private. Please keep in mind that these settings only affect private file system downloads.', array(
'!default_download_method' => l(t('default download method'), 'admin/config/media/file-system'),
)), 'warning');
}
// Display the private file system path.
$private_path = variable_get('file_private_path');
if (!$private_path) {
$output .= '<p>' . t('Your private file system path is not set.') . '</p>';
}
else {
$output .= '<p>' . t('Your private file system path is %path.', array(
'%path' => $private_path,
)) . '</p>';
}
// Display a warning if by-user checks are not enabled.
if (!variable_get('private_files_download_permission_by_user_checks')) {
$output .= '<p>' . t('!by_user_checks are not enabled.', array(
'!by_user_checks' => l(t('By-user checks'), 'admin/config/media/private-files-download-permission/preferences'),
)) . '</p>';
}
// Retrieve directory list and display it as a table.
$directory_list = private_files_download_permission_get_directory_list();
if (variable_get('private_files_download_permission_by_user_checks')) {
$users = private_files_download_permission_get_users();
}
$roles = user_roles();
$rows = array();
foreach ($directory_list as $directory) {
// Prepare the 'Enabled users' cell.
if (variable_get('private_files_download_permission_by_user_checks')) {
$enabled_users = array_intersect_key($users, $directory->uid);
natcasesort($enabled_users);
}
// Prepare the 'Enabled roles' cell.
$enabled_roles = array_intersect_key($roles, $directory->rid);
natcasesort($enabled_roles);
// Fill table row.
$rows[] = array(
$directory->path,
$directory->bypass ? t('Yes') : '',
($directory->grant_file_owners ? t('File owners') . '<br />' : '') . (variable_get('private_files_download_permission_by_user_checks') && !empty($enabled_users) && !$directory->bypass ? implode('<br />', $enabled_users) : ''),
!empty($enabled_roles) && !$directory->bypass ? implode('<br />', $enabled_roles) : '',
l(t('Edit'), 'admin/config/media/private-files-download-permission/' . $directory->did . '/edit/'),
l(t('Remove'), 'admin/config/media/private-files-download-permission/' . $directory->did . '/remove/'),
);
}
$output .= theme('table', array(
'header' => array(
t('Directory path'),
t('Bypass'),
t('Enabled users'),
t('Enabled roles'),
array(
'data' => t('Operations'),
'colspan' => 2,
),
),
'rows' => $rows,
'attributes' => array(),
'caption' => NULL,
'colgroups' => array(),
'sticky' => FALSE,
'empty' => t('The directory list is empty.'),
));
// Display output.
return $output;
}