aboutsummaryrefslogtreecommitdiff
path: root/lib/models/ModuleManagementModel.php
diff options
context:
space:
mode:
authorElmar Ludwig <elmar.ludwig@uni-osnabrueck.de>2022-09-17 13:49:47 +0000
committerElmar Ludwig <elmar.ludwig@uni-osnabrueck.de>2022-09-17 13:49:47 +0000
commitd3f79db0041193160190694d731ba00929d6f871 (patch)
treece8a0714592c52927d7e6be85b6e5097da296c3e /lib/models/ModuleManagementModel.php
parent897179539ef615f61e5fb61ec8c7211880caa918 (diff)
remove SORM config from object instances, re #1473
Merge request studip/studip!920
Diffstat (limited to 'lib/models/ModuleManagementModel.php')
-rw-r--r--lib/models/ModuleManagementModel.php30
1 files changed, 13 insertions, 17 deletions
diff --git a/lib/models/ModuleManagementModel.php b/lib/models/ModuleManagementModel.php
index 39b7d75..d6b3eab 100644
--- a/lib/models/ModuleManagementModel.php
+++ b/lib/models/ModuleManagementModel.php
@@ -170,10 +170,10 @@ abstract class ModuleManagementModel extends SimpleORMap implements ModuleManage
// check the permissions for every single db field except primary keys
if ($this->isNew()) {
- $fields = array_diff(array_keys($this->db_fields),
- array_values($this->pk));
+ $fields = array_diff(array_keys($this->db_fields()),
+ array_values($this->pk()));
} else {
- $fields = array_keys($this->db_fields);
+ $fields = array_keys($this->db_fields());
}
foreach ($fields as $field) {
if ($this->isFieldDirty($field)
@@ -307,7 +307,7 @@ abstract class ModuleManagementModel extends SimpleORMap implements ModuleManage
*/
protected function logChanges ($action = null) {
- switch ($this->db_table) {
+ switch ($this->db_table()) {
case 'abschluss' :
$logging = 'MVV_ABSCHLUSS';
$num_index = 1;
@@ -467,11 +467,11 @@ abstract class ModuleManagementModel extends SimpleORMap implements ModuleManage
}
if ($this->isFieldDirty($name)) {
$info = ($num_index == 3) ? $debuginfo.';'.$value : $value;
- StudipLog::log($logging, $aff, $coaff, $this->db_table.'.'.$name, $info);
+ StudipLog::log($logging, $aff, $coaff, $this->db_table().'.'.$name, $info);
}
}
} else {
- StudipLog::log($logging, $aff, $coaff, $this->db_table, $debuginfo);
+ StudipLog::log($logging, $aff, $coaff, $this->db_table(), $debuginfo);
}
return true;
@@ -519,12 +519,12 @@ abstract class ModuleManagementModel extends SimpleORMap implements ModuleManage
$model_object = new static();
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $data) {
$pkey = [];
- foreach ($model_object->pk as $pk) {
- $pkey[]= $data[$model_object->db_fields[$pk]['name']];
+ foreach (static::pk() as $pk) {
+ $pkey[]= $data[static::db_fields()[$pk]['name']];
}
$data_object = clone $model_object;
foreach ($data as $key => $value) {
- if (isset($data_object->db_fields[$key])) {
+ if (isset($data_object->db_fields()[$key])) {
$data_object->setValue($key, $value);
} else {
$data_object->content[mb_strtolower($key)] = $value;
@@ -661,9 +661,8 @@ abstract class ModuleManagementModel extends SimpleORMap implements ModuleManage
if (!is_array($sort)) {
$sort = explode(',', $sort);
}
- $sorm = new static();
if (sizeof(array_intersect(
- array_merge(array_keys($sorm->db_fields), $additional_fields),
+ array_merge(array_keys(static::db_fields()), $additional_fields),
$sort))) {
return implode(',', $sort);
}
@@ -687,12 +686,10 @@ abstract class ModuleManagementModel extends SimpleORMap implements ModuleManage
$sort = explode(',', $sort);
}
$sort = array_map('trim', $sort);
- $sorm_name = static::class;
- $sorm = new $sorm_name();
$allowed_fields = array_intersect(
$sort,
array_merge(
- array_keys($sorm->db_fields),
+ array_keys(static::db_fields()),
$additional_fields
)
);
@@ -731,9 +728,8 @@ abstract class ModuleManagementModel extends SimpleORMap implements ModuleManage
} else {
$filter_sql = '';
}
- $sorm = new static();
$db = DBManager::get()->query('SELECT COUNT(*) FROM '
- . $sorm->db_table . $filter_sql);
+ . static::db_table() . $filter_sql);
return $db->fetchColumn(0);
}
@@ -795,7 +791,7 @@ abstract class ModuleManagementModel extends SimpleORMap implements ModuleManage
$stmt = DBManager::get()->prepare('SELECT DISTINCT `lang` '
. 'FROM i18n '
. 'WHERE `object_id` = ? AND `table` = ?');
- $stmt->execute([$this->id, $this->db_table]);
+ $stmt->execute([$this->id, $this->db_table()]);
foreach ($stmt->fetchAll() as $locale) {
$language = mb_strtoupper(mb_strstr($locale['lang'], '_', true));
if (is_array($GLOBALS['MVV_LANGUAGES']['values'][$language])) {