function File::query

Same name in this branch
  1. 10 core/modules/file/src/Plugin/migrate/source/d6/File.php \Drupal\file\Plugin\migrate\source\d6\File::query()
Same name in other branches
  1. 9 core/modules/file/src/Plugin/migrate/source/d6/File.php \Drupal\file\Plugin\migrate\source\d6\File::query()
  2. 9 core/modules/file/src/Plugin/migrate/source/d7/File.php \Drupal\file\Plugin\migrate\source\d7\File::query()
  3. 8.9.x core/modules/file/src/Plugin/migrate/source/d6/File.php \Drupal\file\Plugin\migrate\source\d6\File::query()
  4. 8.9.x core/modules/file/src/Plugin/migrate/source/d7/File.php \Drupal\file\Plugin\migrate\source\d7\File::query()
  5. 11.x core/modules/file/src/Plugin/migrate/source/d6/File.php \Drupal\file\Plugin\migrate\source\d6\File::query()
  6. 11.x core/modules/file/src/Plugin/migrate/source/d7/File.php \Drupal\file\Plugin\migrate\source\d7\File::query()

Overrides SqlBase::query

1 method overrides File::query()
FileUsed::query in core/modules/file/tests/modules/file_test_get_ids/src/Plugin/migrate/source/d7/FileUsed.php

File

core/modules/file/src/Plugin/migrate/source/d7/File.php, line 58

Class

File
Drupal 7 file source from database.

Namespace

Drupal\file\Plugin\migrate\source\d7

Code

public function query() {
    $query = $this->select('file_managed', 'f')
        ->fields('f')
        ->condition('f.uri', 'temporary://%', 'NOT LIKE')
        ->orderBy('f.timestamp');
    // Filter by scheme(s), if configured.
    if (isset($this->configuration['scheme'])) {
        $schemes = [];
        // Remove 'temporary' scheme.
        $valid_schemes = array_diff((array) $this->configuration['scheme'], [
            'temporary',
        ]);
        // Accept either a single scheme, or a list.
        foreach ((array) $valid_schemes as $scheme) {
            $schemes[] = rtrim($scheme) . '://';
        }
        $schemes = array_map([
            $this->getDatabase(),
            'escapeLike',
        ], $schemes);
        // Add conditions, uri LIKE 'public://%' OR uri LIKE 'private://%'.
        $conditions = $this->getDatabase()
            ->condition('OR');
        foreach ($schemes as $scheme) {
            $conditions->condition('f.uri', $scheme . '%', 'LIKE');
        }
        $query->condition($conditions);
    }
    return $query;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.