Skip to content

Commit 0991b3a

Browse files
authored
Merge pull request #18 from dof-dss/development
Unity modules release 1.0.8
2 parents dbe8c00 + 9f59df1 commit 0991b3a

10 files changed

+923
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
<?php
2+
3+
namespace Drupal\unity_breadcrumbs;
4+
5+
/**
6+
* @file
7+
* Generates the breadcrumb trail for content including:
8+
* - Consultation
9+
*
10+
* In the format:
11+
* > Home
12+
* > Consultation
13+
* > current-page-title
14+
*
15+
* > <front>
16+
* > /Consultation
17+
* > /current-page-title
18+
*/
19+
use Drupal\Core\Breadcrumb\Breadcrumb;
20+
use Drupal\Core\Breadcrumb\BreadcrumbBuilderInterface;
21+
use Drupal\Core\Controller\TitleResolverInterface;
22+
use Drupal\Core\Entity\EntityTypeManagerInterface;
23+
use Drupal\Core\Routing\RouteMatchInterface;
24+
use Drupal\Core\Link;
25+
use Drupal\Core\Url;
26+
use Drupal\node\NodeInterface;
27+
use Symfony\Component\DependencyInjection\ContainerInterface;
28+
use Symfony\Component\HttpFoundation\RequestStack;
29+
30+
/**
31+
* {@inheritdoc}
32+
*/
33+
class ConsultationBreadcrumb implements BreadcrumbBuilderInterface {
34+
35+
/**
36+
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
37+
*/
38+
protected $entityTypeManager;
39+
40+
/**
41+
* Node object, or null if on a non-node page.
42+
*
43+
* @var \Drupal\node\Entity\Node
44+
*/
45+
protected $node;
46+
47+
/**
48+
* The title resolver.
49+
*
50+
* @var \Drupal\Core\Controller\TitleResolverInterface
51+
*/
52+
protected $titleResolver;
53+
54+
/**
55+
* Symfony\Component\HttpFoundation\RequestStack definition.
56+
*
57+
* @var Symfony\Component\HttpFoundation\RequestStack
58+
*/
59+
protected $request;
60+
61+
/**
62+
* Class constructor.
63+
*/
64+
public function __construct(EntityTypeManagerInterface $entity_type_manager, TitleResolverInterface $title_resolver, RequestStack $request) {
65+
$this->entityTypeManager = $entity_type_manager;
66+
$this->titleResolver = $title_resolver;
67+
$this->request = $request;
68+
69+
}
70+
71+
/**
72+
* {@inheritdoc}
73+
*/
74+
public static function create(ContainerInterface $container) {
75+
return new static(
76+
$container->get('entity_type.manager'),
77+
$container->get('title_resolver'),
78+
$container->get('request_stack')
79+
);
80+
}
81+
82+
/**
83+
* {@inheritdoc}
84+
*/
85+
public function applies(RouteMatchInterface $route_match) {
86+
$match = FALSE;
87+
$route_name = $route_match->getRouteName();
88+
if ($route_name == 'entity.node.canonical') {
89+
$this->node = $route_match->getParameter('node');
90+
}
91+
92+
if ($route_name == 'entity.node.preview') {
93+
$this->node = $route_match->getParameter('node_preview');
94+
}
95+
96+
if (!empty($this->node)) {
97+
if ($this->node instanceof NodeInterface == FALSE) {
98+
$this->node = $this->entityTypeManager->getStorage('node');
99+
}
100+
101+
if ($this->node->bundle() == 'consultation') {
102+
$match = TRUE;
103+
}
104+
}
105+
106+
return $match;
107+
}
108+
109+
/**
110+
* {@inheritdoc}
111+
*/
112+
public function build(RouteMatchInterface $route_match) {
113+
$breadcrumb = new Breadcrumb();
114+
$title_resolver = $this->titleResolver->getTitle($this->request->getCurrentRequest(), $route_match->getRouteObject());
115+
$links[] = Link::createFromRoute(t('Home'), '<front>');
116+
$links[] = Link::fromTextandUrl(t('Consultations'), Url::fromRoute('view.consultations_search.consultations_search_page'));
117+
$links[] = Link::createFromRoute($title_resolver, '<none>');
118+
$breadcrumb->setLinks($links);
119+
$breadcrumb->addCacheContexts(['url.path']);
120+
return $breadcrumb;
121+
}
122+
123+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
<?php
2+
3+
namespace Drupal\unity_breadcrumbs;
4+
5+
/**
6+
* @file
7+
* Generates the breadcrumb trail for content including:
8+
* - Evidence
9+
*
10+
* In the format:
11+
* > Home
12+
* > Evidence
13+
* > current-page-title
14+
*
15+
* > <front>
16+
* > /evidence
17+
* > /current-page-title
18+
*/
19+
use Drupal\Core\Breadcrumb\Breadcrumb;
20+
use Drupal\Core\Breadcrumb\BreadcrumbBuilderInterface;
21+
use Drupal\Core\Controller\TitleResolverInterface;
22+
use Drupal\Core\Entity\EntityTypeManagerInterface;
23+
use Drupal\Core\Routing\RouteMatchInterface;
24+
use Drupal\Core\Link;
25+
use Drupal\Core\Url;
26+
use Drupal\node\NodeInterface;
27+
use Symfony\Component\DependencyInjection\ContainerInterface;
28+
use Symfony\Component\HttpFoundation\RequestStack;
29+
30+
/**
31+
* {@inheritdoc}
32+
*/
33+
class EvidenceBreadcrumb implements BreadcrumbBuilderInterface {
34+
35+
/**
36+
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
37+
*/
38+
protected $entityTypeManager;
39+
40+
/**
41+
* Node object, or null if on a non-node page.
42+
*
43+
* @var \Drupal\node\Entity\Node
44+
*/
45+
protected $node;
46+
47+
/**
48+
* The title resolver.
49+
*
50+
* @var \Drupal\Core\Controller\TitleResolverInterface
51+
*/
52+
protected $titleResolver;
53+
54+
/**
55+
* Symfony\Component\HttpFoundation\RequestStack definition.
56+
*
57+
* @var Symfony\Component\HttpFoundation\RequestStack
58+
*/
59+
protected $request;
60+
61+
/**
62+
* Class constructor.
63+
*/
64+
public function __construct(EntityTypeManagerInterface $entity_type_manager, TitleResolverInterface $title_resolver, RequestStack $request) {
65+
$this->entityTypeManager = $entity_type_manager;
66+
$this->titleResolver = $title_resolver;
67+
$this->request = $request;
68+
69+
}
70+
71+
/**
72+
* {@inheritdoc}
73+
*/
74+
public static function create(ContainerInterface $container) {
75+
return new static(
76+
$container->get('entity_type.manager'),
77+
$container->get('title_resolver'),
78+
$container->get('request_stack')
79+
);
80+
}
81+
82+
/**
83+
* {@inheritdoc}
84+
*/
85+
public function applies(RouteMatchInterface $route_match) {
86+
$match = FALSE;
87+
$route_name = $route_match->getRouteName();
88+
if ($route_name == 'entity.node.canonical') {
89+
$this->node = $route_match->getParameter('node');
90+
}
91+
92+
if ($route_name == 'entity.node.preview') {
93+
$this->node = $route_match->getParameter('node_preview');
94+
}
95+
96+
if (!empty($this->node)) {
97+
if ($this->node instanceof NodeInterface == FALSE) {
98+
$this->node = $this->entityTypeManager->getStorage('node');
99+
}
100+
101+
if ($this->node->bundle() == 'evidence') {
102+
$match = TRUE;
103+
}
104+
}
105+
106+
return $match;
107+
}
108+
109+
/**
110+
* {@inheritdoc}
111+
*/
112+
public function build(RouteMatchInterface $route_match) {
113+
$breadcrumb = new Breadcrumb();
114+
$title_resolver = $this->titleResolver->getTitle($this->request->getCurrentRequest(), $route_match->getRouteObject());
115+
$links[] = Link::createFromRoute(t('Home'), '<front>');
116+
$links[] = Link::fromTextandUrl(t('Evidence'), Url::fromRoute('view.evidence_search.evidence_search_page'));
117+
$links[] = Link::createFromRoute($title_resolver, '<none>');
118+
$breadcrumb->setLinks($links);
119+
$breadcrumb->addCacheContexts(['url.path']);
120+
return $breadcrumb;
121+
}
122+
123+
}
+122
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
<?php
2+
3+
namespace Drupal\unity_breadcrumbs;
4+
5+
/**
6+
* @file
7+
* Generates the breadcrumb trail for content including:
8+
* - News
9+
*
10+
* In the format:
11+
* > Home
12+
* > News
13+
* > current-page-title
14+
*
15+
* > <front>
16+
* > /news
17+
* > /current-page-title
18+
*/
19+
use Drupal\Core\Breadcrumb\Breadcrumb;
20+
use Drupal\Core\Breadcrumb\BreadcrumbBuilderInterface;
21+
use Drupal\Core\Controller\TitleResolverInterface;
22+
use Drupal\Core\Entity\EntityTypeManagerInterface;
23+
use Drupal\Core\Routing\RouteMatchInterface;
24+
use Drupal\Core\Link;
25+
use Drupal\Core\Url;
26+
use Drupal\node\NodeInterface;
27+
use Symfony\Component\DependencyInjection\ContainerInterface;
28+
use Symfony\Component\HttpFoundation\RequestStack;
29+
30+
/**
31+
* {@inheritdoc}
32+
*/
33+
class NewsBreadcrumb implements BreadcrumbBuilderInterface {
34+
35+
/**
36+
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
37+
*/
38+
protected $entityTypeManager;
39+
40+
/**
41+
* Node object, or null if on a non-node page.
42+
*
43+
* @var \Drupal\node\Entity\Node
44+
*/
45+
protected $node;
46+
47+
/**
48+
* The title resolver.
49+
*
50+
* @var \Drupal\Core\Controller\TitleResolverInterface
51+
*/
52+
protected $titleResolver;
53+
54+
/**
55+
* Symfony\Component\HttpFoundation\RequestStack definition.
56+
*
57+
* @var Symfony\Component\HttpFoundation\RequestStack
58+
*/
59+
protected $request;
60+
61+
/**
62+
* Class constructor.
63+
*/
64+
public function __construct(EntityTypeManagerInterface $entity_type_manager, TitleResolverInterface $title_resolver, RequestStack $request) {
65+
$this->entityTypeManager = $entity_type_manager;
66+
$this->titleResolver = $title_resolver;
67+
$this->request = $request;
68+
}
69+
70+
/**
71+
* {@inheritdoc}
72+
*/
73+
public static function create(ContainerInterface $container) {
74+
return new static(
75+
$container->get('entity_type.manager'),
76+
$container->get('title_resolver'),
77+
$container->get('request_stack')
78+
);
79+
}
80+
81+
/**
82+
* {@inheritdoc}
83+
*/
84+
public function applies(RouteMatchInterface $route_match) {
85+
$match = FALSE;
86+
$route_name = $route_match->getRouteName();
87+
if ($route_name == 'entity.node.canonical') {
88+
$this->node = $route_match->getParameter('node');
89+
}
90+
91+
if ($route_name == 'entity.node.preview') {
92+
$this->node = $route_match->getParameter('node_preview');
93+
}
94+
95+
if (!empty($this->node)) {
96+
if ($this->node instanceof NodeInterface == FALSE) {
97+
$this->node = $this->entityTypeManager->getStorage('node');
98+
}
99+
100+
if ($this->node->bundle() == 'news') {
101+
$match = TRUE;
102+
}
103+
}
104+
105+
return $match;
106+
}
107+
108+
/**
109+
* {@inheritdoc}
110+
*/
111+
public function build(RouteMatchInterface $route_match) {
112+
$breadcrumb = new Breadcrumb();
113+
$title_resolver = $this->titleResolver->getTitle($this->request->getCurrentRequest(), $route_match->getRouteObject());
114+
$links[] = Link::createFromRoute(t('Home'), '<front>');
115+
$links[] = Link::fromTextandUrl(t('News'), Url::fromRoute('view.news_search.news_search_page'));
116+
$links[] = Link::createFromRoute($title_resolver, '<none>');
117+
$breadcrumb->setLinks($links);
118+
$breadcrumb->addCacheContexts(['url.path']);
119+
return $breadcrumb;
120+
}
121+
122+
}

0 commit comments

Comments
 (0)