diff --git a/core/modules/tour/tour.module b/core/modules/tour/tour.module
index c1a7682..2e9b412 100644
--- a/core/modules/tour/tour.module
+++ b/core/modules/tour/tour.module
@@ -20,8 +20,36 @@ function tour_help($path, $arg) {
$output .= '
' . t('Viewing tours') . '';
$output .= '' . t("When a tour is available on a page, a Tour button will be visible in the toolbar. Clicking the Tour button will guide the user through the key elements of that page's user interface. A tour may also recommend related tours on the site to the user, which can be taken in sequence to provide a walkthrough of the site in a structured manner.") . '';
$output .= '' . t('Creating tours') . '';
- $output .= '' . t("Tours can be used to highlight critical components of the user interface to the user, guide the user through a workflow, or explain key Drupal concepts. Tours can be written as YAML-documents with a text editor, or using contributed modules. For more information, see the online documentation for writing tours.", array('!doc_url' => 'https://drupal.org/developing/api/tour')) . '';
+ $output .= '' . t("Tours can be used to highlight critical components of the user interface to the user, guide the user through a workflow, or explain key Drupal concepts. Tours can be written as YAML-documents with a text editor, or using Tour UI. For more information, see the online documentation for writing tours.", array('!doc_url' => 'https://drupal.org/developing/api/tour', '!tour_ui' => 'https://drupal.org/project/tour_ui')) . '';
$output .= '';
+
+ $names = drupal_container()->get('config.storage')->listAll('tour.tour.');
+ $tours = array();
+ foreach ($names as $name) {
+ // Only handle elements with a schema. The schema system falls back on the
+ // Property class for unknown types. See http://drupal.org/node/1905230
+ $definition = config_typed()->getDefinition($name);
+ if (is_array($definition) && $definition['class'] == '\Drupal\Core\Config\Schema\Property') {
+ continue;
+ }
+ $tour = config_typed()->get($name)->getValue();
+ $label = $tour['label'];
+ $paths = $tour['paths'];
+ $tips = count($tour['tips']);
+ $links = array();
+ foreach ($paths as $path) {
+ if (strpos($path, "*") === FALSE) {
+ $links[] = l($path, $path, array('query' => array('tour' => 1)));
+ }
+ else {
+ $links[] = check_plain($path);
+ }
+ }
+ $link = theme('item_list', array('items' => $links));
+ $tours[] = $label . ' (' . $tips . '): ' . $link;
+ }
+ $output .= theme('item_list', array('items' => $tours, 'title' => 'Available tours.'));
+
return $output;
}
}