You are here

public function TagadelicCloudTaxonomy::createTags in Tagadelic 8.3

Parameters

$options. An array of properties that may be needed to create the tags array.:

Poulate the member array of TagadelicTag objects

Return value

NULL.

Overrides TagadelicCloudBase::createTags

File

src/TagadelicCloudTaxonomy.php, line 35

Class

TagadelicCloudTaxonomy
Class TagadelicCloud.

Namespace

Drupal\tagadelic

Code

public function createTags(array $options = array()) {
  $config = \Drupal::config('tagadelic.settings');
  $vocabularies = $config
    ->get('tagadelic_vocabularies');
  $max_amount = 50;
  $query = db_select('taxonomy_index', 'i');
  $alias = $query
    ->leftjoin('taxonomy_term_field_data', 't', '%alias.tid = i.tid');
  $query
    ->addExpression('COUNT(i.nid)', 'count');
  $query
    ->addField($alias, 'tid');
  $query
    ->addField($alias, 'name');
  $query
    ->addField($alias, 'description__value');
  $query
    ->orderBy('count', 'DESC');

  // If no vocabularies have been configured use them all
  if (count($vocabularies)) {
    foreach ($vocabularies as $key => $value) {
      if ($key !== $value) {
        $query
          ->condition('t.vid', $key, '<>');
      }
    }
  }
  $query
    ->range(0, $max_amount)
    ->groupBy("t.tid")
    ->groupBy("t.name")
    ->groupBy("t.description__value");
  foreach ($query
    ->execute() as $item) {
    $tag = new TagadelicTag($item->tid, $item->name, $item->count);
    $this
      ->addTag($tag);
  }
}