diff --git a/app/controllers/course/overview.php b/app/controllers/course/overview.php index fa30b1c38d969c1df99b930904d8db8432deefcb..966c0cac91dc363e7e2f58b3f3195be0cf6ffde7 100644 --- a/app/controllers/course/overview.php +++ b/app/controllers/course/overview.php @@ -96,9 +96,8 @@ class Course_OverviewController extends AuthenticatedController foreach ((array) $rule['attributes'] as $val) { if ($val == 1) { // Es gibt also Zusatzangaben. Nun noch überprüfen ob der Nutzer diese Angaben schon gemacht hat... - $count = DataField::countBySql("LEFT JOIN datafields_entries ON datafields_entries.datafield_id = datafields.datafield_id - WHERE datafield_id.object_type = 'usersemdata' AND datafields_entries.sec_range_id = ? AND datafields_entries.range_id = ?", - [$this->course_id, $GLOBALS['user']->id] + $count = DataField::countBySql("LEFT JOIN datafields_entries USING (datafield_id) WHERE object_type = ? AND sec_range_id = ? AND range_id = ?", + ['usersemdata', $this->course_id, $GLOBALS['user']->id] ); if (!$count) { $show = true; diff --git a/lib/classes/I18NStringDatafield.php b/lib/classes/I18NStringDatafield.php index 69c0053d2a5b6199500bb0e7216adc8cdbf034d4..26e51a81ec3fae9a544f8388071faa60096af02a 100644 --- a/lib/classes/I18NStringDatafield.php +++ b/lib/classes/I18NStringDatafield.php @@ -59,8 +59,8 @@ class I18NStringDatafield extends I18NString [$object_id[0], $object_id[1], $object_id[2]] ); foreach ($this->lang as $lang => $value) { - if (mb_strlen($value)) { - DataField::create( + if (strlen($value)) { + DatafieldEntryModel::create( [ 'datafield_id' => $object_id[0], 'range_id' => $object_id[1], @@ -87,14 +87,15 @@ class I18NStringDatafield extends I18NString public static function load($object_id, $table = '', $field = '', $base = null) { if (is_null($base)) { - $base = DataField::findOneBySQL( + $df = DatafieldEntryModel::findOneBySQL( "`datafield_id` = ? AND `range_id` = ? AND `sec_range_id` = ? AND `lang` = ''", $object_id ); + $base = $df->content; } $table = null; $field = null; - return new self($base->content, self::fetchDataForField($object_id, $table, $field), + return new self($base, self::fetchDataForField($object_id, $table, $field), compact('object_id', 'table', 'field')); } diff --git a/lib/models/User.class.php b/lib/models/User.class.php index 1fc2922375c8d37d963446aa6ae98c6cc4974e7e..cbd5e9087690ed84536719d170ed0579d562c03f 100644 --- a/lib/models/User.class.php +++ b/lib/models/User.class.php @@ -296,12 +296,12 @@ class User extends AuthUserMd5 implements Range, PrivacyObject public static function findByDatafield($datafield_id, $value) { return User::findMany( - SimpleCollection::createFromArray( + array_column( DatafieldEntryModel::findBySQL( 'datafield_id = :datafield_id AND content = :value', compact('datafield_id', 'value') - ) - )->pluck('range_id') + ), + 'range_id') ); }