diff -u b/core/modules/tour/src/TourViewBuilder.php b/core/modules/tour/src/TourViewBuilder.php --- b/core/modules/tour/src/TourViewBuilder.php +++ b/core/modules/tour/src/TourViewBuilder.php @@ -39,51 +39,14 @@ $selector = $tip->getSelector(); $location = $tip->getLocation(); - // If $location is null, it's possible that a value is available - // by directly accessing the `location` property. This can occur if - // a tour with the deprecated `location` property was installed and - // tour_post_update_joyride_selectors_to_selector_property() has not run - // with it installed. - // @see tour_post_update_joyride_selectors_to_selector_property() + $body_render_array = $tip->getBody(); + $body = (string) \Drupal::service('renderer')->renderPlain($body_render_array); + $output = [ + 'body' => $body, + 'title' => Html::escape($tip->getLabel()), + ]; - if (!$location && $location = $tip->get('location')) { - // If the `location` property still has a value, this means the tip - // is configured for Joyride. The position value must be appended with - // '-start' to provide the same experience as Joyride. - $location = $location . '-start'; - } - // This condition is met if the tip does not implement - // TourTipPluginInterface. This means the tour tip must be constructed - // with the deprecated getOutput() method. The resulting tour tip - // should be largely identical, with the following exceptions: - // - If the tour tip `attributes` property included anything other - // than `data-class` or `data-id`, these additional attributes - // will not be available in the resulting tour tip. Note that such - // uses are uncommon. - // - Although the tour tip content is identical, the markup structure - // will be different due to being rendered by Shepherd instead of - // Joyride. Themes extending Stable or Stable 9 will not experience - // these changes as a script is provided that reconstructs each tip - // to match Joyride's markup structure. - $attributes = (array) $tip->get('attributes'); - if (array_diff(['data-class', 'data-id'], array_keys($attributes + ['data-class', 'data-id']))) { - trigger_error('The tour tips only support data-class and data-id attributes and they will have to be upgraded manually. See https://www.drupal.org/node/3204093', E_USER_WARNING); - } - $tour_render_array = $tip->getOutput(); - if (!empty($tour_render_array)) { - // The output render array intentionally omits title. The deprecated - // getOutput() returns a render array with the title and main - // content. - $output = [ - 'body' => (string) \Drupal::service('renderer')->renderPlain($tour_render_array), - ]; - - // Add a class so JavaScript in Stable themes can identify deprecated - // tip plugins. The logic used to make markup backwards compatible - // with Joyride is different depending on the type of - // plugin used. - $classes[] = 'tip-uses-get-output'; - } + $selector = $tip->getSelector(); if ($output) { $items[] = [ only in patch2: unchanged: --- a/core/profiles/demo_umami/config/install/tour.tour.umami-front.yml +++ b/core/profiles/demo_umami/config/install/tour.tour.umami-front.yml @@ -28,7 +28,7 @@ tips: label: Navigation weight: 3 position: right - selector: .menu-main__link.is-active + selector: '.menu-main__link.is-active' body: 'This is the main navigation menu for the Umami website. It is simple to create and administer menus and you can create as many menus as your site requires. For example, this site provides this main navigation as well as the user navigation displayed above.' umami-theme: id: umami-theme