class SearchPage

Same name in this branch
  1. 9 core/modules/search/src/Entity/SearchPage.php \Drupal\search\Entity\SearchPage
  2. 9 core/modules/search/src/Plugin/migrate/source/d6/SearchPage.php \Drupal\search\Plugin\migrate\source\d6\SearchPage
Same name and namespace in other branches
  1. 11.x core/modules/search/src/Entity/SearchPage.php \Drupal\search\Entity\SearchPage
  2. 11.x core/modules/search/src/Plugin/migrate/source/d6/SearchPage.php \Drupal\search\Plugin\migrate\source\d6\SearchPage
  3. 11.x core/modules/search/src/Plugin/migrate/source/d7/SearchPage.php \Drupal\search\Plugin\migrate\source\d7\SearchPage

Drupal 7 search active core modules and rankings source from database.

For available configuration keys, refer to the parent classes.

Plugin annotation


@MigrateSource(
  id = "d7_search_page",
  source_module = "search"
)

Hierarchy

Expanded class hierarchy of SearchPage

See also

\Drupal\migrate_drupal\Plugin\migrate\source\Variable

\Drupal\migrate\Plugin\migrate\source\SqlBase

\Drupal\migrate\Plugin\migrate\source\SourcePluginBase

File

core/modules/search/src/Plugin/migrate/source/d7/SearchPage.php, line 22

Namespace

Drupal\search\Plugin\migrate\source\d7
View source
class SearchPage extends Variable {
  
  /**
   * {@inheritdoc}
   */
  protected function initializeIterator() {
    return new \ArrayIterator($this->values());
  }
  
  /**
   * {@inheritdoc}
   */
  protected function values() {
    $search_active_modules = $this->variableGet('search_active_modules', '');
    $values = [];
    foreach ([
      'node',
      'user',
    ] as $module) {
      if (isset($search_active_modules[$module])) {
        // Add a module key to identify the source search provider. This value
        // is used in the EntitySearchPage destination plugin.
        $tmp = [
          'module' => $module,
          'status' => $search_active_modules[$module],
        ];
        // Add the node_rank_* variables (only relevant to the node module).
        if ($module === 'node') {
          $tmp = array_merge($tmp, parent::values());
        }
        $values[] = $tmp;
      }
    }
    return $values;
  }
  
  /**
   * {@inheritdoc}
   */
  public function fields() {
    return [
      'module' => $this->t('The module providing a search page.'),
      'status' => $this->t('Whether or not this module is enabled for search.'),
    ];
  }
  
  /**
   * {@inheritdoc}
   */
  public function getIds() {
    $ids['module']['type'] = 'string';
    return $ids;
  }
  
  /**
   * {@inheritdoc}
   */
  protected function doCount() {
    return $this->initializeIterator()
      ->count();
  }
  
  /**
   * {@inheritdoc}
   */
  public function prepareRow(Row $row) {
    $exists = $this->moduleExists($row->getSourceProperty('module'));
    $row->setSourceProperty('module_exists', $exists);
    return parent::prepareRow($row);
  }

}

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