You are here

function private_files_download_permission_get_directory_list in Private files download permission 7.2

Returns the list of all directories under control.

5 calls to private_files_download_permission_get_directory_list()
private_files_download_permission_file_download in ./private_files_download_permission.module
Implements hook_file_download().
private_files_download_permission_get_directory_form in ./private_files_download_permission.module
(Form callback.) Displays a form to add/edit a directory.
private_files_download_permission_list_directories in ./private_files_download_permission.module
(Page callback.) Displays the main page and lists directories under control.
private_files_download_permission_remove_directory in ./private_files_download_permission.module
(Form callback.) Displays a confirmation dialog before removing a directory from the control list.
private_files_download_permission_remove_directory_submit in ./private_files_download_permission.module
(Form callback.) Removes a directory from the control list.
3 string references to 'private_files_download_permission_get_directory_list'
private_files_download_permission_get_directory_form_submit in ./private_files_download_permission.module
(Form callback.) Submits the directory form.
private_files_download_permission_get_preferences_form_submit in ./private_files_download_permission.module
(Form callback.) Submits the preferences form.
private_files_download_permission_remove_directory_submit in ./private_files_download_permission.module
(Form callback.) Removes a directory from the control list.

File

./private_files_download_permission.module, line 113
Handles both module settings and its behaviour.

Code

function private_files_download_permission_get_directory_list() {
  $directory_list =& drupal_static('private_files_download_permission_directory_list');
  if (!isset($directory_list)) {

    // Load directory list.
    $directory_list = db_select('private_files_download_permission_directory', 't')
      ->fields('t')
      ->orderBy('t.path', 'ASC')
      ->execute()
      ->fetchAllAssoc('did');

    // Add user id and role id arrays to each directory.
    foreach ($directory_list as $directory) {
      $directory->uid = array();
      $directory->rid = array();
    }

    // Load directory user list.
    $directory_users = db_select('private_files_download_permission_directory_user', 't')
      ->fields('t')
      ->orderBy('t.did', 'ASC')
      ->execute()
      ->fetchAll();

    // Load directory role list.
    $directory_roles = db_select('private_files_download_permission_directory_role', 't')
      ->fields('t')
      ->orderBy('t.did', 'ASC')
      ->execute()
      ->fetchAll();

    // Merge array values.
    foreach ($directory_users as $directory_user) {
      $did = $directory_user->did;
      $uid = $directory_user->uid;
      $directory_list[$did]->uid[$uid] = array(
        'uid' => $uid,
      );
    }
    foreach ($directory_roles as $directory_role) {
      $did = $directory_role->did;
      $rid = $directory_role->rid;
      $directory_list[$did]->rid[$rid] = array(
        'rid' => $rid,
      );
    }
  }
  return $directory_list;
}