public function overview_action() { Navigation::activateItem("/admin/locations/sem_classes"); if (count($_POST) && Request::submitted('delete') && Request::get("delete_sem_class")) { $sem_class = $GLOBALS['SEM_CLASS'][Request::get("delete_sem_class")]; if ($sem_class->delete()) { PageLayout::postMessage(MessageBox::success(_("Veranstaltungskategorie wurde gelöscht."))); $GLOBALS['SEM_CLASS'] = SemClass::refreshClasses(); } } if (count($_POST) && Request::get("add_name")) { $statement = DBManager::get()->prepare("SELECT 1 FROM sem_classes WHERE name = :name"); $statement->execute(array('name' => Request::get("add_name"))); $duplicate = $statement->fetchColumn(); if ($duplicate) { $message = sprintf(_("Es existiert bereits eine Veranstaltungskategorie mit dem Namen \"%s\""), Request::get("add_name")); PageLayout::postMessage(MessageBox::error($message)); $this->redirect('admin/sem_classes/overview'); } else { $statement = DBManager::get()->prepare("INSERT INTO sem_classes SET name = :name, mkdate = UNIX_TIMESTAMP(), chdate = UNIX_TIMESTAMP() " . ""); $statement->execute(array('name' => Request::get("add_name"))); $id = DBManager::get()->lastInsertId(); if (Request::get("add_like")) { $sem_class = clone $GLOBALS['SEM_CLASS'][Request::get("add_like")]; $sem_class->set('name', Request::get("add_name")); $sem_class->set('id', $id); $sem_class->store(); } $this->redirect(URLHelper::getURL($this->url_for('admin/sem_classes/details'), array('id' => $id))); PageLayout::postMessage(MessageBox::success(_("Veranstaltungskategorie wurde erstellt."))); $GLOBALS['SEM_CLASS'] = SemClass::refreshClasses(); } } }
public function add_new_host_action() { PageLayout::setTitle(_("Neue Lernmaterialien einstellen")); if (Request::submitted("nothanx")) { $_SESSION['Lernmarktplatz_no_thanx'] = true; $this->redirect("admin/hosts"); } elseif (Request::isPost()) { $host = LernmarktplatzHost::findOneByUrl(trim(Request::get("url"))); if (!$host) { $host = new LernmarktplatzHost(); $host['url'] = trim(Request::get("url")); $host['last_updated'] = time(); $host->fetchPublicKey(); if ($host['public_key']) { $host->store(); PageLayout::postMessage(MessageBox::success(_("Server wurde gefunden und hinzugefügt."))); } else { PageLayout::postMessage(MessageBox::error(_("Server ist nicht erreichbar oder hat die Anfrage abgelehnt."))); } } else { $host->fetchPublicKey(); PageLayout::postMessage(MessageBox::info(_("Server ist schon in Liste."))); } $this->redirect("admin/hosts"); } }
/** * This method edits existing holidays or creates new holidays * * @param mixed $id Id of the holiday or null to create one */ public function edit_action($id = null) { $this->holiday = new SemesterHoliday($id); PageLayout::setTitle($this->holiday->isNew() ? _('Ferien anlegen') : _('Ferien bearbeiten')); if (Request::isPost()) { CSRFProtection::verifyUnsafeRequest(); $this->holiday->name = Request::get('name'); $this->holiday->description = Request::get('description'); $this->holiday->beginn = $this->getTimeStamp('beginn'); $this->holiday->ende = $this->getTimeStamp('ende', '23:59:59'); $errors = array(); if (!$this->holiday->name) { $errors[] = _('Bitte geben Sie einen Namen ein.'); } if (!$this->holiday->beginn) { $errors[] = _('Bitte geben Sie einen Ferienbeginn ein.'); } if (!$this->holiday->ende) { $errors[] = _('Bitte geben Sie ein Ferienende ein.'); } if ($this->holiday->beginn > $this->holiday->ende) { $errors[] = _('Das Ferienende liegt vor dem Beginn.'); } if (!empty($errors)) { PageLayout::postMessage(MessageBox::error(_('Ihre eingegebenen Daten sind ungültig.'), $errors)); } elseif ($this->holiday->isDirty() && !$this->holiday->store()) { PageLayout::postMessage(MessageBox::error(_('Die Ferien konnten nicht gespeichert werden.'))); } else { PageLayout::postMessage(MessageBox::success(_('Die Ferien wurden erfolgreich gespeichert.'))); $this->relocate('admin/holidays'); } } }
/** * **/ public function edit_action($id = null) { $consumer = $id ? RESTAPI\Consumer\Base::find($id) : RESTAPI\Consumer\Base::create(Request::option('consumer_type') ?: 'oauth'); if (Request::submitted('store')) { $errors = array(); $consumer->active = Request::int('active'); $consumer->title = Request::get('title'); $consumer->contact = Request::get('contact'); $consumer->email = Request::get('email'); $consumer->callback = Request::get('callback'); $consumer->url = Request::get('url'); $consumer->type = Request::get('type'); $consumer->commercial = Request::int('commercial'); $consumer->notes = Request::get('notes'); $consumer->description = Request::get('description'); if (!empty($errors)) { $message = MessageBox::error(_('Folgende Fehler sind aufgetreten:'), $errors); PageLayout::postMessage($message); return; } $consumer->store(); if ($id) { $message = MessageBox::success(_('Die Applikation wurde erfolgreich gespeichert.')); } else { $details = $this->render_keys($consumer->id); $message = MessageBox::success(_('Die Applikation wurde erfolgreich erstellt, die Schlüssel finden Sie in den Details dieser Meldung.'), $details, true); } PageLayout::postMessage($message); $this->redirect('admin/api/index#' . $consumer->id); return; } $this->consumer = $consumer; $this->id = $id; }
public function before_filter(&$action, &$args) { parent::before_filter($action, $args); // Lock context to user id $this->owner = $GLOBALS['user']; $this->context_id = $this->owner->id; $this->full_access = true; if (Config::get()->PERSONALDOCUMENT_OPEN_ACCESS) { $username = Request::username('username', $GLOBALS['user']->username); $user = User::findByUsername($username); if ($user && $user->id !== $GLOBALS['user']->id) { $this->owner = $user; $this->context_id = $user->id; $this->full_access = Config::get()->PERSONALDOCUMENT_OPEN_ACCESS_ROOT_PRIVILEDGED && $GLOBALS['user']->perms === 'root'; URLHelper::bindLinkParam('username', $username); } } $this->limit = $GLOBALS['user']->cfg->PERSONAL_FILES_ENTRIES_PER_PAGE ?: Config::get()->ENTRIES_PER_PAGE; $this->userConfig = DocUsergroupConfig::getUserConfig($GLOBALS['user']->id); if ($this->userConfig['area_close'] == 1) { $this->redirect('document/closed/index'); } if (Request::isPost()) { CSRFProtection::verifySecurityToken(); } if (($ticket = Request::get('studip-ticket')) && !check_ticket($ticket)) { $message = _('Bei der Verarbeitung Ihrer Anfrage ist ein Fehler aufgetreten.') . "\n" . _('Bitte versuchen Sie es erneut.'); PageLayout::postMessage(MessageBox::error($message)); $this->redirect('document/files/index'); } }
public function fetchData() { if ($this->already_fetched) { return; } $this->already_fetched = true; try { if (!$this->customImportEnabled()) { if (in_array($this['source'], array("csv_upload", "extern"))) { return; } elseif ($this['source'] === "database") { $this->fetchDataFromDatabase(); return; } elseif ($this['source'] === "csv_weblink") { $this->fetchDataFromWeblink(); return; } elseif ($this['source'] === "csv_studipfile") { $output = $this->getCSVDataFromFile(get_upload_file_path($this['tabledata']['weblink']['file_id']), ";"); $headline = array_shift($output); $this->createTable($headline, $output); return; } } else { $this->getPlugin()->fetchData(); } } catch (Exception $e) { PageLayout::postMessage(MessageBox::error(sprintf(_("Konnte Tabelle '%s' nicht mit Daten befüllen."), $this['name']))); } }
/** * checks, if tour step data is complete * * @return boolean true or false */ function validate() { if ($this->isNew()) { } if (!$this->orientation) { $this->orientation = 'B'; } if (!$this->title and !$this->tip) { PageLayout::postMessage(MessageBox::error(_('Der Schritt muss einen Titel oder Inhalt besitzen.'))); return false; } if (!$this->route) { PageLayout::postMessage(MessageBox::error(_('Ungültige oder fehlende Angabe zur Seite, für die der Schritt angezeigt werden soll.'))); return false; } return true; }
public function display_action($range_id) { // Bind some params URLHelper::bindLinkParam('show_expired', $null1); URLHelper::bindLinkParam('preview', $null2); URLHelper::bindLinkParam('revealNames', $null3); URLHelper::bindLinkParam('sort', $null4); // Bind range_id $this->range_id = $range_id; $this->nobody = !$GLOBALS['user']->id || $GLOBALS['user']->id == 'nobody'; /* * Insert vote */ if ($vote = Request::get('vote')) { $vote = new StudipVote($vote); if (!$this->nobody && $vote && $vote->isRunning() && (!$vote->userVoted() || $vote->changeable)) { try { $vote->insertVote(Request::getArray('vote_answers'), $GLOBALS['user']->id); } catch (Exception $exc) { $GLOBALS['vote_message'][$vote->id] = MessageBox::error($exc->getMessage()); } } } // Check if we need administration icons $this->admin = $range_id == $GLOBALS['user']->id || $GLOBALS['perm']->have_studip_perm('tutor', $range_id); // Load evaluations if (!$this->nobody) { $eval_db = new EvaluationDB(); $this->evaluations = StudipEvaluation::findMany($eval_db->getEvaluationIDs($range_id, EVAL_STATE_ACTIVE)); } else { $this->evaluations = array(); } $show_votes[] = 'active'; // Check if we got expired if (Request::get('show_expired')) { $show_votes[] = 'stopvis'; if ($this->admin) { $this->evaluations = array_merge($this->evaluations, StudipEvaluation::findMany($eval_db->getEvaluationIDs($range_id, EVAL_STATE_STOPPED))); $show_votes[] = 'stopinvis'; } } $this->votes = StudipVote::findBySQL('range_id = ? AND state IN (?) ORDER BY mkdate desc', array($range_id, $show_votes)); $this->visit(); }
/** * Administration page for help content */ function admin_overview_action() { // check permission if (!$GLOBALS['auth']->is_authenticated() || $GLOBALS['user']->id === 'nobody') { throw new AccessDeniedException(); } $GLOBALS['perm']->check('root'); // initialize PageLayout::setTitle(_('Verwalten von Hilfe-Texten')); PageLayout::setHelpKeyword('Basis.HelpContentAdmin'); // set navigation Navigation::activateItem('/admin/config/help_content'); if (Request::get('help_content_filter') == 'set') { $this->help_content_searchterm = Request::option('help_content_filter_term'); } if (Request::submitted('reset_filter')) { $this->help_content_searchterm = ''; } if (Request::submitted('apply_help_content_filter')) { if (Request::get('help_content_searchterm') and strlen(trim(Request::get('help_content_searchterm'))) < 3) { PageLayout::postMessage(MessageBox::error(_('Der Suchbegriff muss mindestens 3 Zeichen lang sein.'))); } if (strlen(trim(Request::get('help_content_searchterm'))) >= 3) { $this->help_content_searchterm = htmlReady(Request::get('help_content_searchterm')); $this->filter_text = sprintf(_('Angezeigt werden Hilfe-Texte zum Suchbegriff "%s".'), $this->help_content_searchterm); } } // load help content $this->help_contents = HelpContent::GetContentByFilter($this->help_content_searchterm); // save settings if (Request::submitted('save_help_content_settings')) { foreach ($this->help_contents as $help_content_id => $help_content) { // set status as chosen if (Request::get('help_content_status_' . $help_content_id) == '1' and !$this->help_contents[$help_content_id]->visible) { $this->help_contents[$help_content_id]->visible = 1; $this->help_contents[$help_content_id]->store(); } elseif (Request::get('help_content_status_' . $help_content_id) != '1' and $this->help_contents[$help_content_id]->visible) { $this->help_contents[$help_content_id]->visible = 0; $this->help_contents[$help_content_id]->store(); } } } }
/** * Toggles whether a certain smiley is favored for the current user * * @param int $id Id of the smiley to favor/disfavor * @param String $view View to return to */ function favor_action($id, $view) { try { $state = $this->favorites->toggle($id); $message = $state ? _('Der Smiley wurde zu Ihren Favoriten hinzugefügt.') : _('Der Smiley gehört nicht mehr zu Ihren Favoriten.'); $msg_box = MessageBox::success($message); } catch (OutOfBoundsException $e) { $state = $this->favorites->contain($id); $message = _('Maximale Favoritenzahl erreicht. Vielleicht sollten Sie mal ausmisten? :)'); $msg_box = MessageBox::error($message); } if (Request::isXhr()) { $this->response->add_header('Content-Type', 'application/json'); $this->render_text(json_encode(array('state' => $state, 'message' => studip_utf8encode($msg_box)))); } else { PageLayout::postMessage($msg_box); $this->redirect('smileys/index/' . $view . '#smiley' . $id); } }
public function decline_inst_action($inst_id) { $institut = Institute::find($inst_id); $ticket_check = Seminar_Session::check_ticket(Request::option('studipticket')); if (Request::option('cmd') != 'kill' && Request::get('cmd') != 'back') { $this->flash['decline_inst'] = true; $this->flash['inst_id'] = $inst_id; $this->flash['name'] = $institut->name; $this->flash['studipticket'] = Seminar_Session::get_ticket(); } else { if (Request::get('cmd') == 'kill' && $ticket_check && Request::get('cmd') != 'back') { $query = "DELETE FROM user_inst WHERE user_id = ? AND Institut_id = ? AND inst_perms = 'user'"; $statement = DBManager::get()->prepare($query); $statement->execute(array($GLOBALS['user']->id, $inst_id)); if ($statement->rowCount() > 0) { PageLayout::postMessage(MessageBox::success(sprintf(_("Die Zuordnung zur Einrichtung %s wurde aufgehoben."), "<b>" . htmlReady($institut->name) . "</b>"))); } else { PageLayout::postMessage(MessageBox::error(_('Datenbankfehler'))); } } } $this->redirect('my_institutes/index'); }
/** * **/ public function edit_action($key = null) { $this->consumer = $this->store->extractConsumerFromRequest($key); if (Request::submitted('store')) { $errors = $this->store->validate($this->consumer); if (!empty($errors)) { $message = MessageBox::error(_('Folgende Fehler sind aufgetreten:'), $errors); PageLayout::postMessage($message); return; } $consumer = $this->store->store($this->consumer, Request::int('enabled', 0)); if ($key) { $message = MessageBox::success(_('Die Applikation wurde erfolgreich gespeichert.')); } else { $details = $this->render_keys($key, $consumer); $message = MessageBox::success(_('Die Applikation wurde erfolgreich erstellt, die Schlüssel finden Sie in den Details dieser Meldung.'), $details, true); } PageLayout::postMessage($message); $this->redirect('admin/index#' . $consumer['consumer_key']); return; } $this->set_layout($GLOBALS['template_factory']->open('layouts/base_without_infobox')); $this->id = $id; }
/** * This action remove a user from course * @param $course_id */ public function decline_action($course_id, $waiting = null) { $current_seminar = Seminar::getInstance($course_id); $ticket_check = Seminar_Session::check_ticket(Request::option('studipticket')); if (LockRules::Check($course_id, 'participants')) { $lockdata = LockRules::getObjectRule($course_id); PageLayout::postMessage(MessageBox::error(sprintf(_("Sie können sich nicht von der Veranstaltung <b>%s</b> abmelden."), htmlReady($current_seminar->name)))); if ($lockdata['description']) { PageLayout::postMessage(MessageBox::info(formatLinks($lockdata['description']))); } $this->redirect('my_courses/index'); return; } if (Request::option('cmd') == 'back') { $this->redirect('my_courses/index'); return; } if (Request::option('cmd') != 'kill' && Request::option('cmd') != 'kill_admission') { if ($current_seminar->admission_binding && Request::get('cmd') != 'suppose_to_kill_admission' && !LockRules::Check($current_seminar->getId(), 'participants')) { PageLayout::postMessage(MessageBox::error(sprintf(_("Die Veranstaltung <b>%s</b> ist als <b>bindend</b> angelegt.\n Wenn Sie sich abmelden wollen, müssen Sie sich an die Lehrende der Veranstaltung wenden."), htmlReady($current_seminar->name)))); $this->redirect('my_courses/index'); return; } if (Request::get('cmd') == 'suppose_to_kill') { // check course admission list(, $admission_end_time) = @array_values($current_seminar->getAdmissionTimeFrame()); $admission_enabled = $current_seminar->isAdmissionEnabled(); $admission_locked = $current_seminar->isAdmissionLocked(); if ($admission_enabled || $admission_locked || (int) $current_seminar->admission_prelim == 1) { $message = sprintf(_('Wollen Sie sich von der teilnahmebeschränkten Veranstaltung "%s" wirklich abmelden? Sie verlieren damit die Berechtigung für die Veranstaltung und müssen sich ggf. neu anmelden!'), $current_seminar->name); } else { if (isset($admission_end_time) && $admission_end_time < time()) { $message = sprintf(_('Wollen Sie sich von der teilnahmebeschränkten Veranstaltung "%s" wirklich abmelden? Der Anmeldzeitraum ist abgelaufen und Sie können sich nicht wieder anmelden!'), $current_seminar->name); } else { $message = sprintf(_('Wollen Sie sich von der Veranstaltung "%s" wirklich abmelden?'), $current_seminar->name); } } $this->flash['cmd'] = 'kill'; } else { if (admission_seminar_user_get_position($GLOBALS['user']->id, $course_id) === false) { $message = sprintf(_('Wollen Sie sich von der Anmeldeliste der Veranstaltung "%s" wirklich abmelden?'), $current_seminar->name); } else { $message = sprintf(_('Wollen Sie sich von der Warteliste der Veranstaltung "%s" wirklich abmelden? Sie verlieren damit die bereits erreichte Position und müssen sich ggf. neu anmelden!'), $current_seminar->name); } $this->flash['cmd'] = 'kill_admission'; } $this->flash['decline_course'] = true; $this->flash['course_id'] = $course_id; $this->flash['message'] = $message; $this->flash['studipticket'] = Seminar_Session::get_ticket(); $this->redirect('my_courses/index'); return; } else { if (!LockRules::Check($course_id, 'participants') && $ticket_check && Request::option('cmd') != 'back' && Request::get('cmd') != 'kill_admission') { $query = "DELETE FROM seminar_user WHERE user_id = ? AND Seminar_id = ?"; $statement = DBManager::get()->prepare($query); $statement->execute(array($GLOBALS['user']->id, $course_id)); if ($statement->rowCount() == 0) { PageLayout::postMessage(MessageBox::error(_('In der ausgewählten Veranstaltung wurde die gesuchten Personen nicht gefunden und konnte daher nicht ausgetragen werden.'))); } else { // LOGGING StudipLog::log('SEM_USER_DEL', $course_id, $GLOBALS['user']->id, 'Hat sich selbst ausgetragen'); // enable others to do something after the user has been deleted NotificationCenter::postNotification('UserDidLeaveCourse', $course_id, $GLOBALS['user']->id); // Delete from statusgroups RemovePersonStatusgruppeComplete(get_username(), $course_id); // Are successor available update_admission($course_id); PageLayout::postMessage(MessageBox::success(sprintf(_("Erfolgreich von Veranstaltung <b>%s</b> abgemeldet."), htmlReady($current_seminar->name)))); } } else { // LOGGING StudipLog::log('SEM_USER_DEL', $course_id, $GLOBALS['user']->id, 'Hat sich selbst aus der Warteliste ausgetragen'); if ($current_seminar->isAdmissionEnabled()) { $prio_delete = AdmissionPriority::unsetPriority($current_seminar->getCourseSet()->getId(), $GLOBALS['user']->id, $course_id); } $query = "DELETE FROM admission_seminar_user WHERE user_id = ? AND seminar_id = ?"; $statement = DBManager::get()->prepare($query); $statement->execute(array($GLOBALS['user']->id, $course_id)); if ($statement->rowCount() || $prio_delete) { //Warteliste neu sortieren renumber_admission($course_id); //Pruefen, ob es Nachruecker gibt update_admission($course_id); PageLayout::postMessage(MessageBox::success(sprintf(_("Der Eintrag in der Anmelde- bzw. Warteliste der Veranstaltung <b>%s</b> wurde aufgehoben.\n Wenn Sie an der Veranstaltung teilnehmen wollen, müssen Sie sich erneut bewerben."), htmlReady($current_seminar->name)))); } } $this->redirect('my_courses/index'); return; } }
function my_error($msg, $class="blank", $colspan=2, $add_row='', $small='') { echo '<tr><td class="'.$class.'" colspan="'.$colspan.'">'; echo MessageBox::error($msg); echo '</td></tr>'; }
/** * Deletes a page. * * @param String $id Id of the page to delete */ public function delete_action($id) { $ticket = Request::option('ticket'); if ($ticket && check_ticket($ticket)) { $scm = new StudipScmEntry($id); if (!$scm->isNew() && $scm->range_id == $GLOBALS['SessSemName'][1]) { $scm->delete(); PageLayout::postMessage(MessageBox::success(_('Der Eintrag wurde gelöscht.'))); } $this->redirect('course/scm'); return; } PageLayout::postMessage(MessageBox::error(_('Es ist ein Fehler aufgetreten. Bitte versuchen Sie erneut, diese Seite zu löschen.'))); $this->redirect('course/scm/' . $id); }
/** * Delete an existing user domain. */ function delete_action() { $id = Request::get('id'); $domain = new UserDomain($id); if (count($domain->getUsers()) == 0) { $domain->delete(); } else { $this->message = MessageBox::error(_('Domänen, denen noch Personen zugewiesen sind, können nicht gelöscht werden.')); } $this->domains = UserDomain::getUserDomains(); $this->render_action('index'); }
/** * Deletes the given entry from step registry. * @param $id ID of the entry to delete */ public function delete_action($id) { CSRFProtection::verifyUnsafeRequest(); if (Request::submitted('delete')) { $step = CourseWizardStepRegistry::find($id); if ($step) { $name = $step->name; if (CourseWizardStepRegistry::unregisterStep($id)) { PageLayout::postMessage(MessageBox::success(sprintf(_('Der Schritt "%s" wurde gelöscht.'), $name))); } else { PageLayout::postMessage(MessageBox::error(sprintf(_('Der Schritt %s konnte nicht gelöscht werden.'), $name))); } } } $this->redirect($this->url_for('admin/coursewizardsteps')); }
$details[] = _('Und Sie müssen den vollständigen Link aus der Bestätigungsmail in die Adresszeile Ihres Browsers kopieren.'); $message = MessageBox::error($error, $details); // Mail an abuse $REMOTE_ADDR = getenv("REMOTE_ADDR"); $Zeit = date("H:i:s, d.m.Y", time()); $username = $auth->auth["uname"]; StudipMail::sendAbuseMessage("Validation", "Secret falsch\n\nUser: {$username}\n\nIP: {$REMOTE_ADDR}\nZeit: {$Zeit}\n"); } else { if ($secret == $hash) { $query = "UPDATE auth_user_md5 SET perms = 'autor' WHERE user_id = ?"; $statement = DBManager::get()->prepare($query); $statement->execute(array($user->id)); if ($statement->rowCount() == 0) { $error = _('Fehler! Bitte wenden Sie sich an den Systemadministrator.'); $details = array($query); $message = MessageBox::error($error, $details); } else { $success = _('Ihr Status wurde erfolgreich auf <em>autor</em> gesetzt.<br> Damit dürfen Sie in den meisten Veranstaltungen schreiben, für die Sie sich anmelden.'); $details = array(); $details[] = _('Einige Veranstaltungen erfordern allerdings bei der Anmeldung die Eingabe eines Passwortes. Dieses Passwort erfahren Sie von den Lehrenden der Veranstaltung.'); $message = MessageBox::success($success, $details); // Auto-Inserts AutoInsert::instance()->saveUser($user->id, "autor"); $auth->logout(); // einen Logout durchführen, um erneuten Login zu erzwingen $info = sprintf(_('Die Statusänderung wird erst nach einem erneuten %sLogin%s wirksam!<br> Deshalb wurden Sie jetzt automatisch ausgeloggt.'), '<a href="index.php?again=yes"><em>', '</em></a>'); $message .= MessageBox::info($info); }
/** * Administration page for tours */ function admin_overview_action() { // check permission if (!$GLOBALS['auth']->is_authenticated() || $GLOBALS['user']->id === 'nobody') { throw new AccessDeniedException(); } $GLOBALS['perm']->check('root'); // initialize PageLayout::setTitle(_('Verwalten von Touren')); PageLayout::setHelpKeyword('Basis.TourAdmin'); // set navigation Navigation::activateItem('/admin/config/tour'); if (Request::get('tour_filter') == 'set') { $this->tour_searchterm = Request::option('tour_filter_term'); } if (Request::submitted('reset_filter')) { $this->tour_searchterm = ''; } if (Request::submitted('apply_tour_filter')) { if (Request::get('tour_searchterm') and strlen(trim(Request::get('tour_searchterm'))) < 3) { PageLayout::postMessage(MessageBox::error(_('Der Suchbegriff muss mindestens 3 Zeichen lang sein.'))); } if (strlen(trim(Request::get('tour_searchterm'))) >= 3) { $this->tour_searchterm = htmlReady(Request::get('tour_searchterm')); $this->filter_text = sprintf(_('Angezeigt werden Touren zum Suchbegriff "%s".'), $this->tour_searchterm); } } // delete tour if (Request::option('confirm_delete_tour')) { CSRFProtection::verifySecurityToken(); $this->delete_tour(Request::option('tour_id')); } // load tours $this->tours = HelpTour::GetToursByFilter($this->tour_searchterm); foreach ($this->tours as $tour_id => $tour) { if (Request::submitted('tour_remove_' . $tour_id)) { $this->delete_question = $this->delete_tour($tour_id); } } // save settings if (Request::submitted('save_tour_settings')) { foreach ($this->tours as $tour_id => $tour) { // set status as chosen if (Request::get('tour_status_' . $tour_id) == '1' and !$this->tours[$tour_id]->settings->active) { $this->tours[$tour_id]->settings->active = 1; $this->tours[$tour_id]->store(); } elseif (Request::get('tour_status_' . $tour_id) != '1' and $this->tours[$tour_id]->settings->active) { $this->tours[$tour_id]->settings->active = 0; $this->tours[$tour_id]->store(); } } } }
/** * generates proper text for confirmation question and removes range_id from news * * * @param $remove_array array with $news_id as key and array of range_ids as value * @param string $range_id * @return string text for confirmation question or empty string after removal */ function remove_news($remove_array) { $confirmed = false; $question_text = array(); if (!is_array($remove_array)) { return false; } if (Request::submitted('yes') and Request::isPost()) { CSRFProtection::verifySecurityToken(); $confirmed = true; } foreach ($remove_array as $news_id => $ranges) { $remove_news = new StudipNews($news_id); $remove_news_title = $remove_news->getValue('topic'); if (!is_array($ranges)) { $ranges = array($ranges); } // should we delete news completely if (count($ranges) == count($remove_news->getRanges())) { $text = delete_news($news_id); if ($text) { $question_text[] = $text; } // or just remove range_id(s)? } else { $text = ''; if ($confirmed and !$remove_news->isNew() and count($ranges)) { foreach ($ranges as $key => $range_id) { if ($remove_news->havePermission('unassign', $range_id)) { $remove_news->deleteRange($range_id); } else { unset($ranges[$key]); PageLayout::postMessage(MessageBox::error(sprintf(_('Keine Berechtigung zum Entfernen der Ankündigung "%s" aus diesem Bereich.'), htmlReady($remove_news->getValue('topic'))))); } if (count($ranges)) { if (count($ranges) == 1) { PageLayout::postMessage(MessageBox::success(sprintf(_('Ankündigung "%s" wurde aus dem Bereich entfernt.'), htmlReady($remove_news->getValue('topic'))))); } else { PageLayout::postMessage(MessageBox::success(sprintf(_('Ankündigung "%s" wurde aus %s Bereichen entfernt.'), htmlReady($remove_news->getValue('topic')), count($ranges)))); } $remove_news->store(); } } } elseif (!$confirmed) { if (count($ranges) == 1) { $text = sprintf(_('- Die Ankündigung "%s" wird aus dem aktiven Bereich entfernt. ' . 'Sie wird dadurch nicht endgültig gelöscht. Es wird nur die Zuordnung entfernt.'), $remove_news_title) . "\n"; } elseif (count($ranges) > 1) { $text = sprintf(_('- Die Ankündigung "%s" wird aus den %s gewählten Bereichen entfernt. ' . 'Sie wird dadurch nicht endgültig gelöscht. Es werden nur die Zuordnungen entfernt.'), $remove_news_title, count($ranges)) . "\n"; } } if ($text) { $question_text[] = $text; } } } if (count($question_text) > 1) { return _('Wollen Sie die folgenden Aktionen jetzt ausführen?') . "\n" . implode($question_text); } elseif (count($question_text) == 1) { return _('Wollen Sie diese Aktion jetzt ausführen?') . "\n" . implode($question_text); } }
<?php # Lifter010: TODO use Studip\Button, Studip\LinkButton; /* * * * * * * * * * * * * * * O U T P U T * * * * * * * * * * * * * * */ ?> <?= $this->render_partial("course/studygroup/_feedback") ?> <? if (!$configured): ?> <?= MessageBox::error(_('Keine Veranstaltungsart für Studiengruppen gefunden'), array(sprintf(_('Die Standardkonfiguration für Studiengruppen in der Datei <b>%s</b> fehlt oder ist unvollständig.'), 'config.inc.php'))) ?> <? endif ?> <? if (!Config::getInstance()->getValue('STUDYGROUPS_ENABLE')):?> <?= MessageBox::info( _("Die Studiengruppen sind derzeit <b>nicht</b> aktiviert.") . '<br>'. _("Zum Aktivieren füllen Sie bitte das Formular aus und klicken Sie auf \"Speichern\".")); ?> <? else: ?> <? if ($can_deactivate) : ?> <?= MessageBox::info( _("Die Studiengruppen sind aktiviert.")) ?> <form action="<?= $controller->url_for('course/studygroup/deactivate') ?>" method="post"> <?= CSRFProtection::tokenTag() ?> <?= Button::create(_("Deaktivieren"), 'deaktivieren') ?> </form> <? else: ?> <?= MessageBox::info(_("Sie können die Studiengruppen nicht deaktivieren, solange noch welche in Stud.IP vorhanden sind!")) ?> <? endif; ?> <br>
function setDefaultConfiguration ($config) { foreach ($config as $element_name => $element) { if (is_array($element)) foreach ($element as $attribute => $value) { if ((string)$value{0} == '|') { $new_config[$element_name][$attribute] = explode('|', substr($value, 1)); } else { $new_config[$element_name][$attribute] = $value; } } } $this->id = $this->makeId(); $this->config_name = $this->createConfigName($this->range_id); // take the new configuration, write the name in the configuration // insert it into the database and store it (method of storaging deepends on // object type) $this->config = $new_config; $this->setValue('Main', 'name', $this->config_name); if ($this->insertConfiguration()) { $this->store(); } else { echo MessageBox::error(_("Sie haben die maximale Anzahl an Konfigurationen für dieses Modul erreicht! Kopieren fehlgeschlagen!")); ExternModule::printError(); } }
<? # Lifter010: TODO use Studip\Button, Studip\LinkButton; ?> <?php echo isset($flash['error']) ? MessageBox::error($flash['error'], $flash['error_detail']) : ''; ?> <form action="<?php echo $controller->url_for('admin/studycourse/edit_profession/' . $edit['studiengang_id']); ?> " method="post"> <?php echo CSRFProtection::tokenTag(); ?> <table class="default"> <tr class="table_row_odd"> <td><?php echo _("Name des Studienfaches:"); ?> </td> <td><input type="text" name="professionname" size="60" maxlength="254" value="<?php echo htmlReady($edit['name']); ?> "></td> </tr> <tr class="table_row_even"> <td><?php echo _("Beschreibung:"); ?> </td>
<? use Studip\Button, Studip\LinkButton; ?> <h1><?php echo _('Manuelle Zuordnung'); ?> </h1> <?php echo isset($flash['error']) ? MessageBox::error($flash['error']) : ''; echo isset($flash['success']) ? MessageBox::success($flash['success']) : ''; echo isset($flash['info']) ? MessageBox::info($flash['info']) : ''; ?> <form action="<?php echo $controller->url_for('course/members/set_autor_csv'); ?> " method="post" name="user"> <?php echo CSRFProtection::tokenTag(); ?> <table class="default"> <thead> <tr> <th class="topic" colspan="2"><?php echo sprintf(_('Folgende %s konnten <b>nicht eindeutig</b> zugewiesen werden. Bitte wählen Sie aus der jeweiligen Trefferliste:'), htmlReady($status_groups['autor'])); ?> </th> </tr> </thead> <tbody> <? foreach($flash['csv_mult_founds'] as $name => $csv_mult_found) : ?> <tr> <td style="width: 40%"><?php echo htmlReady(mila($name, 50));
<?php echo MessageBox::error(_('Dieses Profil ist nicht verf�gbar.'), array(_('Der Benutzer hat sich unsichtbar geschaltet oder ist im System nicht vorhanden.')));
/** * Convenience method: Post an error message box. * * @param String $message Error message to diplay * @param Array $details Additional details (optional) * @param bool $close_details Show the details closed (optional, * defaults to false) */ public static function postError($message, $details = array(), $close_details = false) { self::postMessage(MessageBox::error($message, $details, $close_details)); }
/** * @deprecated since Stud.IP version 1.10 * * @param unknown_type $text * @param unknown_type $colspan */ static function showErrorMessage($text, $colspan = 2) { echo MessageBox::error($text); }
/** * Displays accounts and elearning modules for active user */ public function my_accounts_action() { global $connected_cms, $current_module, $messages; Navigation::activateItem('/tools/my_elearning'); PageLayout::setTitle(_("Meine Lernmodule und Benutzer-Accounts")); if ($this->new_account_cms != "") { $this->new_account_form = ELearningUtils::getNewAccountForm($this->new_account_cms); } foreach ($GLOBALS['ELEARNING_INTERFACE_MODULES'] as $cms => $cms_preferences) { if (ELearningUtils::isCMSActive($cms)) { ELearningUtils::loadClass($cms); if ($cms_preferences["auth_necessary"] == true) { $this->new_module_form[$cms] = ELearningUtils::getNewModuleForm($cms); } $connection_status = $connected_cms[$cms]->getConnectionStatus($cms); foreach ($connection_status as $type => $msg) { if ($msg["error"] != "") { PageLayout::postMessage(MessageBox::error(_("Es traten Probleme bei der Anbindung einzelner Lermodule auf. Bitte wenden Sie sich an Ihren Systemadministrator."), array($cms . ': ' . $msg["error"]))); $GLOBALS["ELEARNING_INTERFACE_" . $cms . "_ACTIVE"] = false; } } } } $connected_cms = array(); // prepare cms list foreach ($GLOBALS['ELEARNING_INTERFACE_MODULES'] as $cms => $cms_preferences) { if (ELearningUtils::isCMSActive($cms) and $cms_preferences["auth_necessary"]) { ELearningUtils::loadClass($cms); $this->cms_list[$cms] = $cms_preferences; $this->cms_list[$cms]['name'] = $connected_cms[$cms]->getName(); $this->cms_list[$cms]['logo'] = $connected_cms[$cms]->getLogo(); $this->cms_list[$cms]['modules'] = array(); if ($this->new_account_cms != $cms) { $this->cms_list[$cms]['show_account_form'] = $cms_preferences; } if ($GLOBALS["module_type_" . $cms] != "") { $this->cms_list[$cms]['cms_anker_target'] = true; } if ($connected_cms[$cms]->user->isConnected()) { $this->cms_list[$cms]['start_link'] = $connected_cms[$cms]->link->getStartpageLink(); } if ($this->new_account_cms != $cms) { if ($connected_cms[$cms]->user->isConnected()) { $this->cms_list[$cms]['user'] = $connected_cms[$cms]->user->getUsername(); $connected_cms[$cms]->soap_client->setCachingStatus(false); $this->user_content_modules = $connected_cms[$cms]->getUserContentModules(); $connected_cms[$cms]->soap_client->setCachingStatus(true); if (!($this->user_content_modules == false)) { foreach ($this->user_content_modules as $key => $connection) { $connected_cms[$cms]->setContentModule($connection, false); $this->cms_list[$cms]['modules'][] = $connected_cms[$cms]->content_module[$current_module]->view->show(); } } $this->cms_list[$cms]['new_module_form'] = $this->new_module_form[$cms]; } } else { $this->cms_list[$cms]['account_form'] = $this->new_account_form; } } } $sidebar = Sidebar::get(); $sidebar->setImage('sidebar/learnmodule-sidebar.png'); $widget = new ActionsWidget(); if ($GLOBALS['perm']->have_perm('autor') and count($this->cms_list)) { foreach ($this->cms_list as $cms_key => $cms_data) { if ($connected_cms[$cms_key]->user->isConnected()) { $widget->addLink(sprintf(_('Zur %s Startseite'), $cms_data['name']), URLHelper::getScriptLink($cms_data['start_link']), Icon::create('link-extern', 'clickable'), array('target' => '_blank')); $link_count++; } } } if ($link_count) { $sidebar->addWidget($widget); } // terminate objects if (is_array($connected_cms)) { foreach ($connected_cms as $system) { $system->terminate(); } } if (is_array($messages)) { foreach ($messages as $mtype => $mtext) { PageLayout::postMessage(MessageBox::$mtype($mtext)); } } }
<?php use Studip\Button, Studip\LinkButton; Helpbar::get()->addPlainText(_('Regeln'), _('Hier können Sie die Regeln, Eigenschaften und Zuordnungen des Anmeldesets bearbeiten.')); Helpbar::get()->addPlainText(_('Info'), _('Sie können das Anmeldeset allen Einrichtungen zuordnen, an denen Sie mindestens Dozentenrechte haben.')); Helpbar::get()->addPlainText(_('Sichtbarkeit'), _('Alle Veranstaltungen der Einrichtungen, an denen Sie mindestens Dozentenrechte haben, können zum Anmeldeset hinzugefügt werden.')); // Load assigned course IDs. $courseIds = $courseset ? $courseset->getCourses() : array(); // Load assigned user list IDs. $userlistIds = $courseset ? $courseset->getUserlists() : array(); if ($flash['error']) { echo MessageBox::error($flash['error']); } ?> <div class="hidden-alert" style="display:none"> <?php echo MessageBox::info(_("Diese Daten sind noch nicht gespeichert.")); ?> </div> <?php echo $this->render_partial('dialog/confirm_dialog'); ?> <h1><?php echo $courseset ? _('Anmeldeset bearbeiten') : _('Anmeldeset anlegen'); ?> </h1> <form class="studip_form" action="<?php echo $controller->url_for(!$instant_course_set_view ? 'admission/courseset/save/' . ($courseset ? $courseset->getId() : '') : 'course/admission/save_courseset/' . $courseset->getId()); ?> " method="post"> <fieldset>
/** * Displays upload form and processes the upload command * * @param String $view View to return to if canceled */ public function upload_action($view) { PageLayout::setTitle(_('Neues Smiley hochladen')); if (!Request::submitted('upload')) { $this->view = $view; return; } // File submitted? $upload = $_FILES['smiley_file']; if (empty($upload) or empty($upload['name'])) { $error = _('Sie haben keine Datei zum Hochladen ausgewählt!'); PageLayout::postMessage(MessageBox::error($error)); return; } // Error upon upload? if ($upload['error']) { $error = _('Es gab einen Fehler beim Upload. Bitte versuchen Sie es erneut.'); PageLayout::postMessage(MessageBox::error($error)); return; } // Correct mime-type? $no_image = !empty($upload['type']) && substr($upload['type'], 0, 5) != 'image'; if (!$no_image) { $image_info = getimagesize($upload['tmp_name']); // Used later on! $no_gif = $image_info[2] != IMAGETYPE_GIF; } if ($no_image) { $error = _('Die Datei ist keine Bilddatei'); PageLayout::postMessage(MessageBox::error($error)); return; } // Extract smiley information $smiley_file = $upload['name']; $smiley_name = substr($smiley_file, 0, strrpos($smiley_file, '.')); // Replace smiley? $smiley = Smiley::getByName($smiley_name); $replace = Request::int('replace'); if ($smiley->id && !$replace) { $error = sprintf(_('Es ist bereits eine Bildatei mit dem Namen "%s" vorhanden.'), $smiley_file); PageLayout::postMessage(MessageBox::error($error)); return; } // Copy file into file system $destination = Smiley::getFilename($smiley_file); if (!move_uploaded_file($upload['tmp_name'], $destination)) { $error = _('Es ist ein Fehler beim Kopieren der Datei aufgetreten. Das Bild wurde nicht hochgeladen!'); PageLayout::postMessage(MessageBox::error($error)); return; } // set permissions for uploaded file chmod($destination, 0666 & ~umask()); // Import smiley into database Smiley::refresh($destination); // Output appropriate wurde message $message = $replace ? sprintf(_('Die Bilddatei "%s" wurde erfolgreich ersetzt.'), $smiley_file) : sprintf(_('Die Bilddatei "%s" wurde erfolgreich hochgeladen.'), $smiley_file); PageLayout::postMessage(MessageBox::success($message)); // Return to index and display the view the uploaded smiley is in $this->redirect('admin/smileys?view=' . $smiley_file[0]); }