Skip to content

Commit

Permalink
Merge pull request #1488 from openeuropa/contribution/UCPKN-3176
Browse files Browse the repository at this point in the history
UCPKN-3176: Accessibility statement link in the footer.
  • Loading branch information
AaronGilMartinez authored Aug 23, 2024
2 parents 87e7b73 + 6981fe6 commit 1ef6222
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 31 deletions.
5 changes: 4 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
"openeuropa/code-review": "^2.0.0-alpha6",
"openeuropa/oe_contact_forms": "^1.14",
"openeuropa/oe_content": "^4.0.0",
"openeuropa/oe_corporate_blocks": "^4.19",
"openeuropa/oe_corporate_blocks": "4.x-dev",
"openeuropa/oe_corporate_countries": "^2.0.0",
"openeuropa/oe_corporate_site_info": "^1.0.0-alpha8",
"openeuropa/oe_media": "^1.27",
Expand All @@ -60,6 +60,9 @@
"phpspec/prophecy-phpunit": "^2",
"symfony/phpunit-bridge": "^6.0"
},
"conflict": {
"openeuropa/oe_corporate_blocks": "<=4.19.2"
},
"scripts": {
"post-install-cmd": "./vendor/bin/run drupal:site-setup",
"post-update-cmd": "./vendor/bin/run drupal:site-setup"
Expand Down
32 changes: 2 additions & 30 deletions oe_theme.theme
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ use Drupal\media_avportal\Plugin\media\Source\MediaAvPortalSourceInterface;
use Drupal\media_avportal\Plugin\media\Source\MediaAvPortalVideoSource;
use Drupal\node\NodeInterface;
use Drupal\oe_content_person\Entity\PersonJobInterface;
use Drupal\oe_corporate_site_info\SiteInformation;
use Drupal\oe_media_iframe\Plugin\media\Source\Iframe;
use Drupal\oe_theme\DocumentMediaValueExtractor;
use Drupal\oe_theme\ValueObject\DateValueObject;
Expand Down Expand Up @@ -1942,38 +1941,11 @@ function _oe_theme_preprocess_site_specific_footer_links(array &$variables): voi
* Get the Accessibility statement link.
*/
function _oe_theme_preprocess_accessibility_link(array &$variables) {
if (!\Drupal::service('module_handler')->moduleExists('oe_corporate_site_info')) {
if (!isset($variables['accessibility_link']) || !$variables['accessibility_link'] instanceof Url) {
return;
}
$cacheability = CacheableMetadata::createFromRenderArray($variables);
$configuration = \Drupal::configFactory()->get(SiteInformation::CONFIG_NAME);
$cacheability->addCacheableDependency($configuration);
/** @var \Drupal\oe_corporate_site_info\SiteInformationInterface $site_information */
$site_information = \Drupal::service('oe_corporate_site_info.site_information');
if (!$site_information->hasAccessibilityLink()) {
$cacheability->applyTo($variables);
return;
}
$uri = $site_information->getAccessibilityLink();
$uri_parts = parse_url($uri);
if ($uri_parts['scheme'] === 'entity') {
[$entity_type_id, $entity_id] = explode('/', $uri_parts['path'], 2);
$entity = \Drupal::entityTypeManager()->getStorage($entity_type_id)->load($entity_id);
if ($entity instanceof NodeInterface) {
$cacheability->addCacheableDependency($entity);
$access = $entity->access('view', \Drupal::currentUser(), TRUE);
$cacheability->addCacheableDependency($access);
if (!$access->isAllowed()) {
$cacheability->applyTo($variables);
// Do not show the button if access to the node is forbidden.
return;
}
}
}
$url = Url::fromUri($uri)->toString();

$variables['accessibility_link'] = $url;
$cacheability->applyTo($variables);
$variables['accessibility_link'] = $variables['accessibility_link']->toString();
}

/**
Expand Down

0 comments on commit 1ef6222

Please sign in to comment.