public function addMember($user_id, $accepted = null, $consider_contingent = null, $cmd = 'add_user') { global $perm, $SEM_CLASS, $SEM_TYPE; $user = UserModel::getUser($user_id); $messaging = new messaging(); $status = 'autor'; // insert $copy_course = $accepted || $consider_contingent ? TRUE : FALSE; $admission_user = insert_seminar_user($this->course_id, $user_id, $status, $copy_course, $consider_contingent, true); // create fullname of user of given user informations $fullname = $user['Vorname'] . ' ' . $user['Nachname']; if ($admission_user) { setTempLanguage($user_id); if ($cmd == 'add_user') { $message = sprintf(_('Sie wurden vom einem/einer %s oder Admin in die Veranstaltung **%s** eingetragen.'), get_title_for_status('dozent', 1), $this->course_title); } else { if (!$accepted) { $message = sprintf(_('Sie wurden vom einem/einer %s oder Admin aus der Warteliste in die Veranstaltung **%s** aufgenommen und sind damit zugelassen.'), get_title_for_status('dozent', 1), $this->course_title); } else { $message = sprintf(_('Sie wurden von einem/einer %s oder Admin vom Status **vorläufig akzeptiert** auf "**teilnehmend** in der Veranstaltung **%s** hochgestuft und sind damit zugelassen.'), get_title_for_status('dozent', 1), $this->course_title); } } restoreLanguage(); $messaging->insert_message($message, $user['username'], '____%system%____', FALSE, FALSE, '1', FALSE, sprintf('%s %s', _('Systemnachricht:'), _('Eintragung in Veranstaltung')), TRUE); } //Warteliste neu sortieren renumber_admission($this->course_id); if ($admission_user) { if ($cmd == "add_user") { $msg = MessageBox::success(sprintf(_('%s wurde in die Veranstaltung mit dem Status <b>%s</b> eingetragen.'), $fullname, $status)); } else { if (!$accepted) { $msg = MessageBox::success(sprintf(_('%s wurde aus der Anmelde bzw. Warteliste mit dem Status <b>%s</b> in die Veranstaltung eingetragen.'), $fullname, $status)); } else { $msg = MessageBox::success(sprintf(_('%s wurde mit dem Status <b>%s</b> endg?ltig akzeptiert und damit in die Veranstaltung aufgenommen.'), $fullname, $status)); } } } else { if ($consider_contingent) { $msg = MessageBox::error(_('Es stehen keine weiteren Plätze mehr im Teilnehmerkontingent zur Verfügung.')); } else { $msg = MessageBox::error(_('Beim Eintragen ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut oder wenden Sie sich an einen Systemadministrator')); } } return $msg; }
/** * Old version of CSV import (copy and paste from teilnehmer.php * @return type * @throws AccessDeniedException */ public function set_autor_csv_action() { // Security Check if (!$this->is_tutor) { throw new AccessDeniedException('Sie haben leider keine ausreichende Berechtigung, um auf diesen Bereich von Stud.IP zuzugreifen.'); } CSRFProtection::verifyUnsafeRequest(); // prepare CSV-Lines $messaging = new messaging(); $csv_request = preg_split('/(\\n\\r|\\r\\n|\\n|\\r)/', trim(Request::get('csv_import'))); $csv_mult_founds = array(); $csv_count_insert = 0; $csv_count_multiple = 0; $datafield_id = null; if (Request::get('csv_import_format') && !in_array(Request::get('csv_import_format'), words('realname username'))) { foreach (DataField::getDataFields('user', 1 | 2 | 4 | 8, true) as $df) { if ($df->accessAllowed() && in_array($df->getId(), $GLOBALS['TEILNEHMER_IMPORT_DATAFIELDS']) && $df->getId() == Request::quoted('csv_import_format')) { $datafield_id = $df->getId(); break; } } } if (Request::get('csv_import')) { // remove duplicate users from csv-import $csv_lines = array_unique($csv_request); $csv_count_contingent_full = 0; foreach ($csv_lines as $csv_line) { $csv_name = preg_split('/[,\\t]/', substr($csv_line, 0, 100), -1, PREG_SPLIT_NO_EMPTY); $csv_nachname = trim($csv_name[0]); $csv_vorname = trim($csv_name[1]); if ($csv_nachname) { if (Request::quoted('csv_import_format') == 'realname') { $csv_users = $this->members->getMemberByIdentification($csv_nachname, $csv_vorname); } elseif (Request::quoted('csv_import_format') == 'username') { $csv_users = $this->members->getMemberByUsername($csv_nachname); } else { $csv_users = $this->members->getMemberByDatafield($csv_nachname, $datafield_id); } } // if found more then one result to given name if (count($csv_users) > 1) { // if user have two accounts $csv_count_present = 0; foreach ($csv_users as $row) { if ($row['is_present']) { $csv_count_present++; } else { $csv_mult_founds[$csv_line][] = $row; } } if (is_array($csv_mult_founds[$csv_line])) { $csv_count_multiple++; } } elseif (count($csv_users) > 0) { $row = reset($csv_users); if (!$row['is_present']) { $consider_contingent = Request::option('consider_contingent_csv'); if (insert_seminar_user($this->course_id, $row['user_id'], 'autor', isset($consider_contingent), $consider_contingent)) { $csv_count_insert++; setTempLanguage($this->user_id); $message = sprintf(_('Sie wurden in die Veranstaltung **%s** eingetragen.'), $this->course_title); restoreLanguage(); $messaging->insert_message($message, $row['username'], '____%system%____', FALSE, FALSE, '1', FALSE, sprintf('%s %s', _('Systemnachricht:'), _('Eintragung in Veranstaltung')), TRUE); } elseif (isset($consider_contingent)) { $csv_count_contingent_full++; } } else { $csv_count_present++; } } else { // not found $csv_not_found[] = stripslashes($csv_nachname) . ($csv_vorname ? ', ' . stripslashes($csv_vorname) : ''); } } } $selected_users = Request::getArray('selected_users'); if (!empty($selected_users) && count($selected_users) > 0) { foreach ($selected_users as $selected_user) { if ($selected_user) { if (insert_seminar_user($this->course_id, get_userid($selected_user), 'autor', isset($consider_contingent), $consider_contingent)) { $csv_count_insert++; setTempLanguage($this->user_id); if ($GLOBALS['SEM_CLASS'][$GLOBALS['SEM_TYPE'][$_SESSION['SessSemName']['art_num']]['class']]['workgroup_mode']) { $message = sprintf(_('Sie wurden manuell in die Veranstaltung **%s** eingetragen.'), $this->course_title); } else { $message = sprintf(_('Sie wurden manuell in die Veranstaltung **%s** eingetragen.'), $this->course_title); } restoreLanguage(); $messaging->insert_message($message, $selected_user, '____%system%____', FALSE, FALSE, '1', FALSE, sprintf('%s %s', _('Systemnachricht:'), _('Eintragung in Veranstaltung')), TRUE); } elseif (isset($consider_contingent)) { $csv_count_contingent_full++; } } } } // no results if (!sizeof($csv_lines) && !sizeof($selected_users)) { PageLayout::postMessage(MessageBox::error(_("Niemanden gefunden!"))); } if ($csv_count_insert) { PageLayout::postMessage(MessageBox::success(sprintf(_('%s Personen in die Veranstaltung eingetragen!'), $csv_count_insert))); } if ($csv_count_present) { PageLayout::postMessage(MessageBox::info(sprintf(_('%s Personen waren bereits in der Veranstaltung eingetragen!'), $csv_count_present))); } // redirect to manual assignment if ($csv_mult_founds) { PageLayout::postMessage(MessageBox::info(sprintf(_('%s Personen konnten <b>nicht eindeutig</b> zugeordnet werden! Nehmen Sie die Zuordnung bitte manuell vor.'), $csv_count_multiple))); $this->flash['csv_mult_founds'] = $csv_mult_founds; $this->redirect('course/members/csv_manual_assignment'); return; } if (count($csv_not_found) > 0) { PageLayout::postMessage(MessageBox::error(sprintf(_('%s konnten <b>nicht</b> zugeordnet werden!'), htmlReady(join(',', $csv_not_found))))); } if ($csv_count_contingent_full) { PageLayout::postMessage(MessageBox::error(sprintf(_('%s Personen konnten <b>nicht</b> zugeordnet werden, da das ausgewählte Kontingent keine freien Plätze hat.'), $csv_count_contingent_full))); } $this->redirect('course/members/index'); }
function addToStatusgroup($range_id, $statusgruppe_id, $workgroup_mode) { $mp = MultiPersonSearch::load("contacts_statusgroup_" . $statusgruppe_id); if (count($mp->getAddedUsers()) !== 0) { foreach ($mp->getAddedUsers() as $m) { $quickfilters = $mp->getQuickfilterIds(); if (in_array($m, $quickfilters[_("Veranstaltungsteilnehmende")])) { InsertPersonStatusgruppe ($m, $statusgruppe_id, false); } elseif (in_array($m, $quickfilters[_("Mitarbeiter/-innen")])) { $writedone = InsertPersonStatusgruppe ($m, $statusgruppe_id, false); if ($writedone) { if ($workgroup_mode == TRUE) { $globalperms = get_global_perm($m); if ($globalperms == "tutor" || $globalperms == "dozent") { insert_seminar_user($range_id, $m, "tutor"); } else { insert_seminar_user($range_id, $m, "autor"); } } else { insert_seminar_user($range_id, $m, "autor"); } } checkExternDefaultForUser($m); } else { $writedone = InsertPersonStatusgruppe ($m, $statusgruppe_id, false); if ($writedone) { if ($workgroup_mode == TRUE) { $globalperms = get_global_perm($m); if ($globalperms == "tutor" || $globalperms == "dozent") { insert_seminar_user($range_id, $m, "tutor"); } else { insert_seminar_user($range_id, $m, "autor"); } } else { insert_seminar_user($range_id, $m, "autor"); } } } } } $mp->clearSession(); }