Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
CommentLazyBuilders
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 2
6
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 renderForm
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace Drupal\crm\Service;
6
7use Drupal\comment\CommentLazyBuilders as BaseCommentLazyBuilders;
8use Drupal\comment\CommentManagerInterface;
9use Drupal\Core\Entity\EntityFormBuilderInterface;
10use Drupal\Core\Entity\EntityTypeManagerInterface;
11use Drupal\Core\Extension\ModuleHandlerInterface;
12use Drupal\Core\Render\RendererInterface;
13use Drupal\Core\Session\AccountInterface;
14use Drupal\Core\Path\CurrentPathStack;
15use Drupal\Core\Url;
16
17/**
18 * Custom comment lazy builders.
19 */
20class CommentLazyBuilders extends BaseCommentLazyBuilders {
21
22  /**
23   * The path current service.
24   *
25   * @var \Drupal\Core\Path\CurrentPathStack
26   */
27  protected $pathCurrent;
28
29  /**
30   * Constructs a new CommentLazyBuilders object.
31   *
32   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
33   *   The entity type manager service.
34   * @param \Drupal\Core\Entity\EntityFormBuilderInterface $entity_form_builder
35   *   The entity form builder service.
36   * @param \Drupal\Core\Session\AccountInterface $current_user
37   *   The current logged in user.
38   * @param \Drupal\comment\CommentManagerInterface $comment_manager
39   *   The comment manager service.
40   * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
41   *   The module handler service.
42   * @param \Drupal\Core\Render\RendererInterface $renderer
43   *   The renderer service.
44   * @param \Drupal\Core\Path\CurrentPathStack $path_current
45   *   The path current service.
46   */
47  public function __construct(EntityTypeManagerInterface $entity_type_manager, EntityFormBuilderInterface $entity_form_builder, AccountInterface $current_user, CommentManagerInterface $comment_manager, ModuleHandlerInterface $module_handler, RendererInterface $renderer, CurrentPathStack $path_current) {
48    parent::__construct($entity_type_manager, $entity_form_builder, $current_user, $comment_manager, $module_handler, $renderer);
49    $this->pathCurrent = $path_current;
50  }
51
52  /**
53   * {@inheritdoc}
54   */
55  public function renderForm($commented_entity_type_id, $commented_entity_id, $field_name, $comment_type_id) {
56    $form = parent::renderForm($commented_entity_type_id, $commented_entity_id, $field_name, $comment_type_id);
57
58    $current_path = $this->pathCurrent->getPath();
59    $form['#action'] = Url::fromUserInput($form['#action'], [
60      'query' => [
61        'destination' => $current_path,
62        'crm_contact' => $commented_entity_id,
63      ],
64    ])->toString();
65
66    return $form;
67  }
68
69}