From 2f1f86e6f0be4bdcc76ad455d8f390317d271ce9 Mon Sep 17 00:00:00 2001
From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de>
Date: Wed, 21 Aug 2024 20:20:39 +0200
Subject: [PATCH] allow selecting matriculation_number on Stud.IP 5.5, fixes
 #266

---
 lib/vips_common.inc.php | 8 ++++++--
 views/config/index.php  | 6 +++++-
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/lib/vips_common.inc.php b/lib/vips_common.inc.php
index 8703ed0..902b2f0 100644
--- a/lib/vips_common.inc.php
+++ b/lib/vips_common.inc.php
@@ -188,13 +188,17 @@ function normalizeFloat($string, &$unit)
 function get_student_id($user)
 {
     $datafield_id = Config::get()->VIPS_STUDENT_ID_DATAFIELD;
-    $entries = [];
 
     if ($datafield_id) {
         $entries = DatafieldEntryModel::findByModel($user, $datafield_id);
+        return $entries ? $entries[0]->content : null;
     }
 
-    return $entries ? $entries[0]->content : null;
+    if (isset($user->matriculation_number)) {
+        return $user->matriculation_number;
+    }
+
+    return null;
 }
 
 /**
diff --git a/views/config/index.php b/views/config/index.php
index 7dcb73a..af76a73 100644
--- a/views/config/index.php
+++ b/views/config/index.php
@@ -11,7 +11,11 @@
             <?= _vips('Datenfeld für die Matrikelnummer') ?>
 
             <select name="datafield">
-                <option value=""></option>
+                <option value="">
+                    <? if (version_compare($GLOBALS['SOFTWARE_VERSION'], '5.5', '>=')): ?>
+                        <?= _vips('Matrikelnummer') ?> (Stud.IP)
+                    <? endif ?>
+                </option>
                 <? foreach ($fields as $field): ?>
                     <option value="<?= $field->id ?>" <?= $config->VIPS_STUDENT_ID_DATAFIELD == $field->id ? 'selected' : '' ?>>
                         <?= htmlReady($field->name) ?>
-- 
GitLab