diff --git a/CHANGELOG.md b/CHANGELOG.md index b55d22097d21e2c698f034b770751c1dda126448..728336ced9198f32ff8312778878bf8baf795004 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Modified Hero Frame subtitle to hold 100% of height - Fixed items placed in right sidebar of Section not receiving the correct classes - Fixed Margin Component opacity not working when set to 0 +- Modified Event pattern to render breadcrumbs only if /events url exists ## [2.7.0] - 09/03/2020 diff --git a/patterns/molecules/event-display/event-display.html.twig b/patterns/molecules/event-display/event-display.html.twig index 976458ae8cbf3d3b9accce9c7acf4953cde03d67..e1698266c343db38f0aa2a3d7cbeca963311a620 100755 --- a/patterns/molecules/event-display/event-display.html.twig +++ b/patterns/molecules/event-display/event-display.html.twig @@ -3,32 +3,34 @@ * Event Full Content Display Pattern Twig. #} -{# First breadcrumbs #} -<div class="row mt-2"> - <div class="col-md-12 event-node-full-content-first-breadcrumbs"> - <a href="/events"> - {{ 'Events'|trans }} - </a> - {% if cern_node_type == "webcast_event" %} - <a href="/events?type=2"> - {{ 'Webcast'|trans }} +{% if urlExists('/events') %} + {# First breadcrumbs #} + <div class="row mt-2"> + <div class="col-md-12 event-node-full-content-first-breadcrumbs"> + <a href="/events"> + {{ 'Events'|trans }} </a> - {% endif %} - {% if cern_node_type == "event_page" %} - <a href="/events?type=1"> - {{ 'Event'|trans }} - </a> - {% endif %} - {% if cern_node_type == "indico_event" %} - <a href="/events?type=1"> - {{ 'Event'|trans }} - </a> - {% endif %} - </div> - <div class="col-md-12"> - <hr class="event-page-hr-separator"/> + {% if cern_node_type == "webcast_event" %} + <a href="/events?type=2"> + {{ 'Webcast'|trans }} + </a> + {% endif %} + {% if cern_node_type == "event_page" %} + <a href="/events?type=1"> + {{ 'Event'|trans }} + </a> + {% endif %} + {% if cern_node_type == "indico_event" %} + <a href="/events?type=1"> + {{ 'Event'|trans }} + </a> + {% endif %} + </div> + <div class="col-md-12"> + <hr class="event-page-hr-separator"/> + </div> </div> -</div> +{% endif %} {# Main content #} <div class="row event-node-center-content clearfix"> diff --git a/src/TwigExtension/CernComponentsTwigExtension.php b/src/TwigExtension/CernComponentsTwigExtension.php index 0840957351cdd5b850ba69389fefc5988aef9e52..9e37b61f1d6c26cb595d0aca5389e90f89aa1fe2 100755 --- a/src/TwigExtension/CernComponentsTwigExtension.php +++ b/src/TwigExtension/CernComponentsTwigExtension.php @@ -113,7 +113,8 @@ class CernComponentsTwigExtension extends \Twig_Extension { new \Twig_SimpleFunction('get_cds_info', [$this,'getCdsInfo']), new \Twig_SimpleFunction('get_tag_attribute', [$this,'getTagAttribute']), new \Twig_SimpleFunction('set_tag_attribute', [$this,'setTagAttribute']), - ]; + new \Twig_SimpleFunction('urlExists', [$this,'urlExists']), + ]; } /** @@ -141,7 +142,7 @@ class CernComponentsTwigExtension extends \Twig_Extension { * @param $link * @return string */ - public function getUrlLink($link){ + public function getUrlLink($link){ reset($link); $first_key = key($link); @@ -153,7 +154,6 @@ class CernComponentsTwigExtension extends \Twig_Extension { } } - /** * Returns the current language of the * @@ -651,7 +651,6 @@ class CernComponentsTwigExtension extends \Twig_Extension { } - /** * Return the sentence Voir in Français / View in English. * @@ -735,5 +734,23 @@ class CernComponentsTwigExtension extends \Twig_Extension { $path = substr($url, 0, strrpos($url, "/")); return $path ? $path : NULL; + } + + /** + * Returns whether a URL exists in the Drupal website + * + * @param $url + * @return bool + */ + public function urlExists($url){ + $url = \Drupal::service('path.validator')->getUrlIfValid($url); + + // if they are equal => url exists + if ($url == false){ + return false; + } + else{ + return true; + } } }