コード例 #1
0
ファイル: Sql.php プロジェクト: jthoresen/PladsenDrupal
  /**
   * {@inheritdoc}
   */
  public function init(ViewExecutable $view, DisplayPluginBase $display, array &$options = NULL) {
    parent::init($view, $display, $options);

    $base_table = $this->view->storage->get('base_table');
    $base_field = $this->view->storage->get('base_field');
    $this->relationships[$base_table] = array(
      'link' => NULL,
      'table' => $base_table,
      'alias' => $base_table,
      'base' => $base_table
    );

    // init the table queue with our primary table.
    $this->tableQueue[$base_table] = array(
      'alias' => $base_table,
      'table' => $base_table,
      'relationship' => $base_table,
      'join' => NULL,
    );

    // init the tables with our primary table
    $this->tables[$base_table][$base_table] = array(
      'count' => 1,
      'alias' => $base_table,
    );

    $this->count_field = array(
      'table' => $base_table,
      'field' => $base_field,
      'alias' => $base_field,
      'count' => TRUE,
    );
  }
コード例 #2
0
ファイル: SearchApiQuery.php プロジェクト: jkyto/agolf
 /**
  * {@inheritdoc}
  */
 public function init(ViewExecutable $view, DisplayPluginBase $display, array &$options = NULL) {
   try {
     parent::init($view, $display, $options);
     $this->fields = array();
     $this->index = self::getIndexFromTable($view->storage->get('base_table'));
     if (!$this->index) {
       $this->abort(new FormattableMarkup('View %view is not based on Search API but tries to use its query plugin.', array('%view' => $view->storage->label())));
     }
     $this->query = $this->index->query(array(
       'parse mode' => $this->options['parse_mode'],
     ));
   }
   catch (\Exception $e) {
     $this->abort($e->getMessage());
   }
 }
コード例 #3
0
 /**
  * {@inheritdoc}
  */
 public function init(ViewExecutable $view, DisplayPluginBase $display, array &$options = NULL)
 {
     try {
         parent::init($view, $display, $options);
         $this->index = static::getIndexFromTable($view->storage->get('base_table'));
         if (!$this->index) {
             $this->abort(new FormattableMarkup('View %view is not based on Search API but tries to use its query plugin.', array('%view' => $view->storage->label())));
         }
         $this->retrievedProperties = array_fill_keys($this->index->getDatasourceIds(), array());
         $this->retrievedProperties[NULL] = array();
         $this->query = $this->index->query();
         $this->query->setParseMode($this->options['parse_mode']);
         $this->query->addTag('views');
         $this->query->addTag('views_' . $view->id());
         $this->query->setOption('search_api_view', $view);
     } catch (\Exception $e) {
         $this->abort($e->getMessage());
     }
 }
コード例 #4
0
 /**
  * {@inheritdoc}
  */
 public function init(ViewExecutable $view, DisplayPluginBase $display, array &$options = NULL)
 {
     try {
         parent::init($view, $display, $options);
         $this->fields = array();
         if (substr($view->storage->get('base_table'), 0, 17) == 'search_api_index_') {
             $id = substr($view->storage->get('base_table'), 17);
             $this->index = Index::load($id);
             $this->query = $this->index->query(array('parse mode' => $this->options['parse_mode']));
         } else {
             $this->abort(SafeMarkup::format('View %view is not based on Search API but tries to use its query plugin.', array('%view' => $view->storage->label())));
         }
     } catch (\Exception $e) {
         $this->abort($e->getMessage());
     }
 }