You are here

function social_tagging_process_tags in Open Social 8

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_tagging/social_tagging.module \social_tagging_process_tags()
  2. 8.2 modules/social_features/social_tagging/social_tagging.module \social_tagging_process_tags()
  3. 8.3 modules/social_features/social_tagging/social_tagging.module \social_tagging_process_tags()
  4. 8.4 modules/social_features/social_tagging/social_tagging.module \social_tagging_process_tags()
  5. 8.5 modules/social_features/social_tagging/social_tagging.module \social_tagging_process_tags()
  6. 8.6 modules/social_features/social_tagging/social_tagging.module \social_tagging_process_tags()
  7. 8.7 modules/social_features/social_tagging/social_tagging.module \social_tagging_process_tags()
  8. 8.8 modules/social_features/social_tagging/social_tagging.module \social_tagging_process_tags()
  9. 10.3.x modules/social_features/social_tagging/social_tagging.module \social_tagging_process_tags()
  10. 10.0.x modules/social_features/social_tagging/social_tagging.module \social_tagging_process_tags()
  11. 10.1.x modules/social_features/social_tagging/social_tagging.module \social_tagging_process_tags()
  12. 10.2.x modules/social_features/social_tagging/social_tagging.module \social_tagging_process_tags()

Build output on node view.

Parameters

\Drupal\node\NodeInterface $node: A node.

Return value

array Hierarchic presentation of the terms.

1 call to social_tagging_process_tags()
SocialTagsBlock::build in modules/social_features/social_tagging/src/Plugin/Block/SocialTagsBlock.php
Builds and returns the renderable array for this block plugin.

File

modules/social_features/social_tagging/social_tagging.module, line 286
Contains social_tagging.module.

Code

function social_tagging_process_tags(NodeInterface $node) {
  if (!($node instanceof NodeInterface && $node
    ->hasField('social_tagging'))) {
    return '';
  }
  $tag_service = \Drupal::service('social_tagging.tag_service');
  if (!$tag_service
    ->active()) {
    return '';
  }
  $terms = $node
    ->get('social_tagging')
    ->getValue();
  if ($tag_service
    ->allowSplit()) {
    $renderable = [
      '#theme' => 'social_tagging_split',
      '#taghierarchy' => $tag_service
        ->buildHierarchy($terms),
    ];
  }
  else {
    $tarray = [];

    // Just a simple way to add all tags to the array.
    foreach ($terms as $term) {
      $url = Url::fromRoute('view.search_content.page_no_value', [
        'tag[]' => $term['target_id'],
      ]);

      /** @var Drupal\taxonomy\Entity\Term $term */
      $taxonomy_term = Term::load($term['target_id']);
      $tarray[$taxonomy_term
        ->getName()] = $url
        ->toString();
    }
    $renderable = [
      '#theme' => 'social_tagging_nosplit',
      '#tagstitle' => t('Tags'),
      '#tags' => $tarray,
    ];
  }
  return \Drupal::service('renderer')
    ->render($renderable);
}