You are here

comment_test.module in Zircon Profile 8

Dummy module implementing comment related hooks to test API interaction with the Comment module.

File

core/modules/comment/tests/modules/comment_test/comment_test.module
View source
<?php

/**
 * @file
 * Dummy module implementing comment related hooks to test API interaction with
 * the Comment module.
 */
use Drupal\comment\CommentInterface;
use Drupal\Core\Url;

/**
 * Implements hook_entity_type_alter().
 */
function comment_test_entity_type_alter(array &$entity_types) {

  /** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */
  if (\Drupal::languageManager()
    ->isMultilingual()) {

    // Enable language handling for comment fields.
    $translation = $entity_types['comment']
      ->get('translation');
    $translation['comment_test'] = TRUE;
    $entity_types['comment']
      ->set('translation', $translation);
  }
}

/**
 * Implements hook_comment_links_alter().
 */
function comment_test_comment_links_alter(array &$links, CommentInterface &$entity, array &$context) {

  // Allow tests to enable or disable this alter hook.
  if (!\Drupal::state()
    ->get('comment_test_links_alter_enabled', FALSE)) {
    return;
  }
  $links['comment_test'] = array(
    '#theme' => 'links__comment__comment_test',
    '#attributes' => array(
      'class' => array(
        'links',
        'inline',
      ),
    ),
    '#links' => array(
      'comment-report' => array(
        'title' => t('Report'),
        'url' => Url::fromRoute('comment_test.report', [
          'comment' => $entity
            ->id(),
        ], [
          'query' => [
            'token' => \Drupal::getContainer()
              ->get('csrf_token')
              ->get("comment/{$entity->id()}/report"),
          ],
        ]),
      ),
    ),
  );
}