|
|
|
|
@ -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 .= '<details><summary>' . t('RDF namespaces used in field mappings') . |
|
|
|
|
'</summary><div class="details-wrapper">' . $namespaces_table_markup . '</div></details>'; |
|
|
|
|
|
|
|
|
|
$markup .= '<h2>' . t('Field mappings') . '</h2>'; |
|
|
|
|
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 .= '<h3>RDF namespaces</h3>'; |
|
|
|
|
$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 .= '<h2>' . t('Taxonomy terms with external URIs') . '</h2>'; |
|
|
|
|
$utils = \Drupal::service('islandora.utils'); |
|
|
|
|
$vocabs = Vocabulary::loadMultiple(); |
|
|
|
|
foreach ($vocabs as $vid => $vocab) { |
|
|
|
|
$vocab_table_header = []; |
|
|
|
|
$vocab_table_rows = []; |
|
|
|
|
$markup .= '<h3>' . $vocab->label() . ' (' . $vid . ')</h3>'; |
|
|
|
|
$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]; |
|
|
|
|
} |
|
|
|
|
|