From 09902d3fa493bbe7f10177d5da2479fda93fb71e Mon Sep 17 00:00:00 2001 From: Mark Jordan Date: Thu, 28 May 2020 05:20:47 +0000 Subject: [PATCH] Work on #1521; fixed function comment. --- .../RdfMappingsReportController.php | 73 +++++++++++++++---- src/IslandoraUtils.php | 2 +- 2 files changed, 60 insertions(+), 15 deletions(-) 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.