select('upload', 'u') ->distinct() ->fields('u', ['nid', 'vid']); $query->innerJoin('node', 'n', static::JOIN); $query->addField('n', 'type'); return $query; } /** * {@inheritdoc} */ public function prepareRow(Row $row) { $query = $this->select('upload', 'u') ->fields('u', ['fid', 'description', 'list']) ->condition('u.nid', $row->getSourceProperty('nid')) ->orderBy('u.weight'); $query->innerJoin('node', 'n', static::JOIN); $row->setSourceProperty('upload', $query->execute()->fetchAll()); return parent::prepareRow($row); } /** * {@inheritdoc} */ public function fields() { return [ 'fid' => $this->t('The file Id.'), 'nid' => $this->t('The node Id.'), 'vid' => $this->t('The version Id.'), 'type' => $this->t('The node type'), 'description' => $this->t('The file description.'), 'list' => $this->t('Whether the list should be visible on the node page.'), 'weight' => $this->t('The file weight.'), ]; } /** * {@inheritdoc} */ public function getIds() { $ids['vid']['type'] = 'integer'; $ids['vid']['alias'] = 'u'; return $ids; } }