diff --git a/src/Controller/RdfMappingsReportController.php b/src/Controller/RdfMappingsReportController.php
index 2b3e3a31..f0cb65e5 100644
--- a/src/Controller/RdfMappingsReportController.php
+++ b/src/Controller/RdfMappingsReportController.php
@@ -3,6 +3,8 @@
namespace Drupal\islandora\Controller;
use Drupal\Core\Controller\ControllerBase;
+use Drupal\taxonomy\Entity\Vocabulary;
+use Drupal\taxonomy\Entity\Term;
/**
* RDF mappings report controller.
@@ -20,6 +22,23 @@ class RdfMappingsReportController extends ControllerBase {
$markup = '';
$entity_types = ['node', 'media'];
+ $namespaces = rdf_get_namespaces();
+ $namespaces_table_rows = [];
+ foreach ($namespaces as $alias => $namespace_uri) {
+ $namespaces_table_rows[] = [$alias, $namespace_uri];
+ }
+ $namespaces_table_header = [t('Namespace alias'), t('Namespace URI')];
+ $namespaces_table = [
+ '#theme' => 'table',
+ '#header' => $namespaces_table_header,
+ '#rows' => $namespaces_table_rows,
+ ];
+ $namespaces_table_markup = \Drupal::service('renderer')->render($namespaces_table);
+
+ $markup .= '' . t('RDF namespaces used in field mappings') .
+ '
' . $namespaces_table_markup . '
';
+
+ $markup .= '
' . t('Field mappings') . '
';
foreach ($entity_types as $entity_type) {
$bundles = \Drupal::service('entity_type.bundle.info')->getBundleInfo($entity_type);
foreach ($bundles as $name => $attr) {
@@ -51,21 +70,47 @@ class RdfMappingsReportController extends ControllerBase {
}
}
- $markup .= 'RDF namespaces
';
- $namespaces = rdf_get_namespaces();
- $namespaces_table_rows = [];
- foreach ($namespaces as $alias => $namespace_uri) {
- $namespaces_table_rows[] = [$alias, $namespace_uri];
+ // Taxonomy terms with external URIs.
+ $markup .= '' . t('Taxonomy terms with external URIs') . '
';
+ $utils = \Drupal::service('islandora.utils');
+ $vocabs = Vocabulary::loadMultiple();
+ foreach ($vocabs as $vid => $vocab) {
+ $vocab_table_header = [];
+ $vocab_table_rows = [];
+ $markup .= '' . $vocab->label() . ' (' . $vid . ')
';
+ $terms = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadTree($vid);
+ if (count($terms) == 0) {
+ $vocab_table_rows[] = [t('No terms in this vocabulary.')];
+ $vocab_table = [
+ '#theme' => 'table',
+ '#header' => $vocab_table_header,
+ '#rows' => $vocab_table_rows,
+ ];
+ $vocab_table_markup = \Drupal::service('renderer')->render($vocab_table);
+ $markup .= $vocab_table_markup;
+ }
+ else {
+ $vocab_table_header = [t('Term'), t('Term ID'), t('External URI')];
+ $vocab_table_rows = [];
+ foreach ($terms as $t) {
+ $term = Term::load($t->tid);
+ $uri = $utils->getUriForTerm($term);
+ if (is_null($uri)) {
+ $vocab_table_rows[] = [$term->getName(), $term->id(), t('None')];
+ }
+ else {
+ $vocab_table_rows[] = [$term->getName(), $term->id(), $uri];
+ }
+ }
+ $vocab_table = [
+ '#theme' => 'table',
+ '#header' => $vocab_table_header,
+ '#rows' => $vocab_table_rows,
+ ];
+ }
+ $vocab_table_markup = \Drupal::service('renderer')->render($vocab_table);
+ $markup .= $vocab_table_markup;
}
- $namespaces_table_header = [t('Namespace alias'), t('Namespace URI')];
- $namespaces_table = [
- '#theme' => 'table',
- '#header' => $namespaces_table_header,
- '#rows' => $namespaces_table_rows,
- ];
- $namespaces_table_markup = \Drupal::service('renderer')->render($namespaces_table);
-
- $markup .= $namespaces_table_markup;
return ['#markup' => $markup];
}
diff --git a/src/IslandoraUtils.php b/src/IslandoraUtils.php
index 1d337796..08d02e3a 100644
--- a/src/IslandoraUtils.php
+++ b/src/IslandoraUtils.php
@@ -265,7 +265,7 @@ class IslandoraUtils {
}
/**
- * Gets the taxonomy term associated with an external uri.
+ * Gets the external uri associated with a taxonomy term.
*
* @param \Drupal\taxonomy\TermInterface $term
* Taxonomy term.