diff options
| author | David Siegfried <david.siegfried@uni-vechta.de> | 2024-05-17 13:38:02 +0000 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2024-05-17 13:38:02 +0000 |
| commit | 364005681b3ec2e6e9b50ce8762e3ca83ba5e601 (patch) | |
| tree | fc2ec354135d426dd6f73b02c343e239b1bbab41 /lib/classes/ProfileModel.php | |
| parent | 5e0842ceba062adbc2615bd522cecb1b54e201af (diff) | |
remove ProfilModel, fixes #4185
Closes #4185
Merge request studip/studip!3022
Diffstat (limited to 'lib/classes/ProfileModel.php')
| -rw-r--r-- | lib/classes/ProfileModel.php | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/lib/classes/ProfileModel.php b/lib/classes/ProfileModel.php deleted file mode 100644 index 6827ba6..0000000 --- a/lib/classes/ProfileModel.php +++ /dev/null @@ -1,213 +0,0 @@ -<?php -/** - * ProfileModel - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * @author David Siegfried <david.siegfried@uni-oldenburg.de> - * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 - * @category Stud.IP - * @since 2.4 - */ - -class ProfileModel -{ - protected $perm; - /** - * Internal current selected user id - * @var String - */ - protected $current_user; - - /** - * Internal current logged in user id - * @var String - */ - protected $user; - - /** - * Internal user homepage visbilities - * @var array - */ - protected $visibilities; - - /** - * Get informations on depending selected user - * @param String $current_user - * @param String $user - */ - public function __construct($current_user, $user) - { - $this->current_user = User::find($current_user); - $this->user = User::find($user); - $this->visibilities = $this->getHomepageVisibilities(); - $this->perm = $GLOBALS['perm']; - } - - /** - * Get the homepagevisibilities - * - * @return array - */ - public function getHomepageVisibilities() - { - $visibilities = get_local_visibility_by_id( - $this->current_user ? $this->current_user->id : null, - 'homepage' - ); - if (is_array(json_decode($visibilities, true))) { - return json_decode($visibilities, true); - } - return []; - } - - /** - * Returns the visibility value - * - * @return String - */ - public function getVisibilityValue($param, $visibility = '') - { - if (Visibility::verify($visibility ?: $param, $this->current_user->user_id)) { - return $this->current_user->$param; - } - return false; - } - - /** - * Returns a specific value of the visibilies - * @param String $param - * @return String - */ - - public function getSpecificVisibilityValue($param) - { - if (!empty($this->visibilities[$param])) { - return $this->visibilities[$param]; - } - return false; - } - - /** - * Creates an array with all seminars - * - * @return array - */ - public function getDozentSeminars() - { - $courses = []; - $semester = []; - $next_semester = Semester::findNext(); - $current_semester = Semester::findCurrent(); - $previous_semester = Semester::findPrevious(); - if ($next_semester) { - $semester[$next_semester->id] = $next_semester; - } - if ($current_semester) { - $semester[$current_semester->id] = $current_semester; - } - if ($previous_semester) { - $semester[$previous_semester->id] = $previous_semester; - } - $field = 'name'; - if (Config::get()->IMPORTANT_SEMNUMBER) { - $field = "veranstaltungsnummer,{$field}"; - } - $allcourses = new SimpleCollection(Course::findBySQL("INNER JOIN seminar_user USING(Seminar_id) WHERE user_id=? AND seminar_user.status='dozent' AND seminare.visible=1", [$this->current_user->id])); - foreach (array_filter($semester) as $one) { - $courses[(string) $one->name] = $allcourses->filter(function ($c) use ($one) { - if (Config::get()->HIDE_STUDYGROUPS_FROM_PROFILE && $c->isStudygroup()) { - return false; - } - if (!$c->isOpenEnded()) { - return $c->isInSemester($one); - } elseif ($one->isCurrent()) { - return $c; - } - return false; - })->orderBy($field); - - if (!$courses[(string) $one->name]->count()) { - unset($courses[(string) $one->name]); - } - } - return $courses; - } - - /** - * Collect user datafield informations - * - * @return array - */ - public function getDatafields() - { - // generische Datenfelder aufsammeln - $short_datafields = []; - $long_datafields = []; - foreach (DataFieldEntry::getDataFieldEntries($this->current_user->user_id, 'user') as $entry) { - if ($entry->isVisible() && $entry->getDisplayValue() - && Visibility::verify($entry->getID(), $this->current_user->user_id)) - { - if ($entry instanceof DataFieldTextareaEntry) { - $long_datafields[] = $entry; - } else { - $short_datafields[] = $entry; - } - } - } - - return [ - 'long' => $long_datafields, - 'short' => $short_datafields, - ]; - } - - /** - * Filter long datafiels from the datafields - * - * @return array - */ - public function getLongDatafields() - { - $datafields = $this->getDatafields(); - $array = []; - - if (empty($datafields)) { - return null; - } - foreach ($datafields['long'] as $entry) { - $array[(string) $entry->getName()] = [ - 'content' => $entry->getDisplayValue(), - 'visible' => '(' . $entry->getPermsDescription() . ')', - ]; - } - - return $array; - } - - /** - * Filter short datafiels from the datafields - * - * @return array - */ - public function getShortDatafields() - { - $shortDatafields = $this->getDatafields(); - $array = []; - - if (empty($shortDatafields)) { - return null; - } - - foreach ($shortDatafields['short'] as $entry) { - $array[(string) $entry->getName()] = [ - 'content' => $entry->getDisplayValue(), - 'visible' => '(' . $entry->getPermsDescription() . ')', - ]; - } - return $array; - } -} |
