From 97849dc895b1bd2145bea482e97db48df6ece711 Mon Sep 17 00:00:00 2001
From: Adam Vessey <adam-vessey@users.noreply.github.com>
Date: Tue, 31 May 2022 17:28:52 -0300
Subject: [PATCH] Avoid attempting to refer to an unknown index.

When running in a bare site (without any content... like, in a unit
testing rig), this ends up trying to refer to a non-existent offset.

... add an `isset()` test to avoid doing so.
---
 islandora.views.inc | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/islandora.views.inc b/islandora.views.inc
index cd826d08..ad2b141a 100644
--- a/islandora.views.inc
+++ b/islandora.views.inc
@@ -13,13 +13,16 @@ function islandora_views_data_alter(&$data) {
   $fields = \Drupal::service('entity_field.manager')->getFieldStorageDefinitions('node');
   foreach ($fields as $field => $field_storage_definition) {
     if ($field_storage_definition->getType() == 'integer' && strpos($field, "field_") === 0) {
-      $data['node__' . $field][$field . '_value']['field'] = $data['node__' . $field][$field]['field'];
-      $data['node__' . $field][$field]['title'] = t('Integer Weight Selector (@field)', [
-        '@field' => $field,
-      ]);
-      $data['node__' . $field][$field]['help'] = t('Provides a drag-n-drop reordering of integer-based weight fields.');
-      $data['node__' . $field][$field]['title short'] = t('Integer weight selector');
-      $data['node__' . $field][$field]['field']['id'] = 'integer_weight_selector';
+      $prefixed_field = 'node__' . $field;
+      if (isset($data[$prefixed_field])) {
+        $data[$prefixed_field][$field . '_value']['field'] = $data[$prefixed_field][$field]['field'];
+        $data[$prefixed_field][$field]['title'] = t('Integer Weight Selector (@field)', [
+          '@field' => $field,
+        ]);
+        $data[$prefixed_field][$field]['help'] = t('Provides a drag-n-drop reordering of integer-based weight fields.');
+        $data[$prefixed_field][$field]['title short'] = t('Integer weight selector');
+        $data[$prefixed_field][$field]['field']['id'] = 'integer_weight_selector';
+      }
     }
   }
 }