Exemple #1
0
 public function before_filter(&$action, &$args)
 {
     parent::before_filter($action, $args);
     $course_id = Request::option('sem_id', $args[0]);
     if (empty($course_id)) {
         checkObject();
         //wirft Exception, wenn $SessionSeminar leer ist
         $course_id = $GLOBALS['SessionSeminar'];
     }
     $this->course = Course::find($course_id);
     if (!$this->course) {
         throw new Trails_Exception(400);
     }
     $this->send_from_search_page = Request::get('send_from_search_page');
     if ($GLOBALS['SessionSeminar'] != $this->course->id && !(int) $this->course->visible && !($GLOBALS['perm']->have_perm(Config::get()->SEM_VISIBILITY_PERM) || $GLOBALS['perm']->have_studip_perm('user', $this->course->id))) {
         throw new AccessDeniedException(_('Diese Veranstaltung ist versteckt. Hier gibt es nichts zu sehen.'));
     }
     if (!preg_match('/^(' . preg_quote($GLOBALS['CANONICAL_RELATIVE_PATH_STUDIP'], '/') . ')?([a-zA-Z0-9_-]+\\.php)([a-zA-Z0-9_?&=-]*)$/', $this->send_from_search_page)) {
         $this->send_from_search_page = '';
     }
     if ($this->course->getSemClass()->offsetGet('studygroup_mode')) {
         if ($GLOBALS['perm']->have_studip_perm('autor', $this->course->id)) {
             // participants may see seminar_main
             $link = URLHelper::getUrl('seminar_main.php', array('auswahl' => $this->course->id));
         } else {
             $link = URLHelper::getUrl('dispatch.php/course/studygroup/details/' . $this->course->id, array('send_from_search_page' => $this->send_from_search_page));
         }
         $this->redirect($link);
         return;
     }
 }
Exemple #2
0
 function before_filter(&$action, &$args)
 {
     if (Request::option('auswahl')) {
         Request::set('cid', Request::option('auswahl'));
     }
     parent::before_filter($action, $args);
     checkObject();
     $this->institute = Institute::findCurrent();
     if (!$this->institute) {
         throw new CheckObjectException(_('Sie haben kein Objekt gewählt.'));
     }
     $this->institute_id = $this->institute->id;
     //set visitdate for institute, when coming from meine_seminare
     if (Request::option('auswahl')) {
         object_set_visit($this->institute_id, "inst");
     }
     //gibt es eine Anweisung zur Umleitung?
     if (Request::get('redirect_to')) {
         $query_parts = explode('&', stristr(urldecode($_SERVER['QUERY_STRING']), 'redirect_to'));
         list(, $where_to) = explode('=', array_shift($query_parts));
         $new_query = $where_to . '?' . join('&', $query_parts);
         page_close();
         $new_query = preg_replace('/[^:0-9a-z+_\\-.#?&=\\/]/i', '', $new_query);
         header('Location: ' . URLHelper::getURL($new_query, array('cid' => $this->institute_id)));
         die;
     }
     PageLayout::setHelpKeyword("Basis.Einrichtungen");
     PageLayout::setTitle($this->institute->getFullName() . " - " . _("Kurzinfo"));
     Navigation::activateItem('/course/main/info');
 }
Exemple #3
0
 public function before_filter(&$action, &$args)
 {
     parent::before_filter($action, $args);
     checkObject();
     checkObjectModule("schedule");
     PageLayout::setTitle(sprintf('%s - %s', Course::findCurrent()->getFullname(), _("Themen")));
     $seminar = new Seminar(Course::findCurrent());
     $this->forum_activated = $seminar->getSlotModule('forum');
     $this->documents_activated = $seminar->getSlotModule('documents');
 }
Exemple #4
0
 /**
  * Before filter, set up the page by initializing the session and checking
  * all conditions.
  *
  * @param String $action Name of the action to be invoked
  * @param Array  $args   Arguments to be passed to the action method
  */
 public function before_filter(&$action, &$args)
 {
     parent::before_filter($action, $args);
     if (!Config::Get()->ELEARNING_INTERFACE_ENABLE) {
         throw new AccessDeniedException(_('Elearning-Interface ist nicht aktiviert.'));
     } else {
         $this->elearning_active = true;
     }
     PageLayout::setHelpKeyword('Basis.Ilias');
     PageLayout::setTitle($_SESSION['SessSemName']["header_line"] . " - " . _("Lernmodule"));
     checkObject();
     // do we have an open object?
     checkObjectModule('elearning_interface');
     object_set_visit_module('elearning_interface');
     $this->search_key = Request::get('search_key');
     $GLOBALS['search_key'] = $this->search_key;
     $this->cms_select = Request::quoted('cms_select');
     $GLOBALS['cms_select'] = $this->cms_select;
     $this->open_all = Request::get('open_all');
     $this->close_all = Request::get('close_all');
     $this->new_account_cms = Request::get('new_account_cms');
     $this->module_system_type = Request::get('module_system_type');
     $this->module_id = Request::get('module_id');
     $this->module_type = Request::get('module_type');
     $this->anker_target = Request::get('anker_target');
     $this->seminar_id = $_SESSION['SessSemName'][1];
     $this->rechte = $GLOBALS['perm']->have_studip_perm('tutor', $this->seminar_id);
     if (!isset($GLOBALS['ELEARNING_INTERFACE_MODULES'][$this->new_account_cms])) {
         unset($this->new_account_cms);
     }
     if (!isset($GLOBALS['ELEARNING_INTERFACE_MODULES'][$this->cms_select])) {
         unset($this->cms_select);
     }
     if ($this->seminar_id != $_SESSION['elearning_open_close']["id"]) {
         unset($_SESSION['cache_data']);
         unset($_SESSION['elearning_open_close']);
     }
     if ($this->open_all != "") {
         $_SESSION['elearning_open_close']["all open"] = true;
     } elseif ($this->close_all != "") {
         $_SESSION['elearning_open_close']["all open"] = "";
     }
     $_SESSION['elearning_open_close']["type"] = "seminar";
     $_SESSION['elearning_open_close']["id"] = $this->seminar_id;
     if (Request::get('do_open')) {
         $this->anker_target = Request::get('do_open');
         $_SESSION['elearning_open_close'][Request::get('do_open')] = true;
     } elseif (Request::get('do_close')) {
         $this->anker_target = Request::get('do_close');
         $_SESSION['elearning_open_close'][Request::get('do_close')] = false;
     }
     $this->sidebar = Sidebar::get();
     $this->sidebar->setImage('sidebar/learnmodule-sidebar.png');
     $this->sidebar->setContextAvatar(CourseAvatar::getAvatar($this->seminar_id));
 }
Exemple #5
0
 public function before_filter(&$action, &$args)
 {
     parent::before_filter($action, $args);
     global $perm;
     checkObject();
     checkObjectModule("participants");
     $this->course_id = $_SESSION['SessSemName'][1];
     $this->course_title = $_SESSION['SessSemName'][0];
     $this->user_id = $GLOBALS['auth']->auth['uid'];
     // Check dozent-perms
     if ($perm->have_studip_perm('dozent', $this->course_id)) {
         $this->is_dozent = true;
     }
     // Check tutor-perms
     if ($perm->have_studip_perm('tutor', $this->course_id)) {
         $this->is_tutor = true;
     }
     // Check autor-perms
     if ($perm->have_studip_perm('autor', $this->course_id)) {
         $this->is_autor = true;
     }
     if ($this->is_tutor) {
         PageLayout::setHelpKeyword("Basis.VeranstaltungenVerwaltenTeilnehmer");
     } else {
         PageLayout::setHelpKeyword("Basis.InVeranstaltungTeilnehmer");
     }
     // Check lock rules
     $this->dozent_is_locked = LockRules::Check($this->course_id, 'dozent');
     $this->tutor_is_locked = LockRules::Check($this->course_id, 'tutor');
     $this->is_locked = LockRules::Check($this->course_id, 'participants');
     // Layoutsettings
     PageLayout::setTitle(sprintf('%s - %s', Course::findCurrent()->getFullname(), _("Teilnehmende")));
     PageLayout::addScript('members.js');
     SkipLinks::addIndex(Navigation::getItem('/course/members')->getTitle(), 'main_content', 100);
     object_set_visit_module('participants');
     $this->last_visitdate = object_get_visit($this->course_id, 'participants');
     // Check perms and set the last visit date
     if (!$this->is_tutor) {
         $this->last_visitdate = time() + 10;
     }
     // Get the max-page-value for the pagination
     $this->max_per_page = Config::get()->ENTRIES_PER_PAGE;
     $this->status_groups = array('dozent' => get_title_for_status('dozent', 2), 'tutor' => get_title_for_status('tutor', 2), 'autor' => get_title_for_status('autor', 2), 'user' => get_title_for_status('user', 2), 'accepted' => get_title_for_status('accepted', 2), 'awaiting' => _("Wartende Personen"), 'claiming' => _("Wartende Personen"));
     // StatusGroups for the view
     $this->decoratedStatusGroups = array('dozent' => get_title_for_status('dozent', 1), 'autor' => get_title_for_status('autor', 1), 'tutor' => get_title_for_status('tutor', 1), 'user' => get_title_for_status('user', 1));
     //check for admission / waiting list
     update_admission($this->course_id);
     // Create new MembersModel, to get additionanl informations to a given Seminar
     $this->members = new MembersModel($this->course_id, $this->course_title);
     $this->members->checkUserVisibility();
     // Set default sidebar image
     $sidebar = Sidebar::get();
     $sidebar->setImage('sidebar/person-sidebar.png');
 }
Exemple #6
0
 /**
  * Before filter, set up the page by initializing the session and checking
  * all conditions.
  *
  * @param String $action Name of the action to be invoked
  * @param Array  $args   Arguments to be passed to the action method
  */
 public function before_filter(&$action, &$args)
 {
     parent::before_filter($action, $args);
     if (!Config::Get()->LITERATURE_ENABLE) {
         throw new AccessDeniedException(_('Die Literaturübersicht ist nicht aktiviert.'));
     }
     PageLayout::setHelpKeyword('Basis.Literatur');
     checkObject();
     // do we have an open object?
     checkObjectModule('literature');
     object_set_visit_module('literature');
 }
Exemple #7
0
 public function before_filter(&$action, &$args)
 {
     parent::before_filter($action, $args);
     checkObject();
     checkObjectModule("schedule");
     $course = Course::findCurrent();
     if ($course) {
         PageLayout::setTitle(sprintf('%s - %s', $course->getFullname(), _("Termine")));
     } else {
         PageLayout::setTitle(_("Termine"));
     }
     PageLayout::addSqueezePackage('tablesorter');
 }
Exemple #8
0
 public function create_action($id, $type)
 {
     checkObject();
     checkObjectModule('documents');
     object_set_visit_module('documents');
     if (!$GLOBALS['rechte']) {
         throw new AccessDeniedException();
     }
     PageLayout::setTitle(_('Neuen Ordner erstellen'));
     $options = array();
     $options[md5('new_top_folder')] = _('Namen auswählen oder wie Eingabe') . ' -->';
     $query = "SELECT SUM(1) FROM folder WHERE range_id = ?";
     $statement = DBManager::get()->prepare($query);
     $statement->execute(array($id));
     if ($statement->fetchColumn() == 0) {
         $options[$id] = _('Allgemeiner Dateiordner');
     }
     if ($type === 'sem') {
         $query = "SELECT statusgruppe_id AS id, statusgruppen.name AS name\n                      FROM statusgruppen\n                      LEFT JOIN folder ON (statusgruppe_id = folder.range_id)\n                      WHERE statusgruppen.range_id = ? AND folder_id IS NULL\n                      ORDER BY position";
         $statement = DBManager::get()->prepare($query);
         $statement->execute(array($id));
         $statement->setFetchMode(PDO::FETCH_ASSOC);
         foreach ($statement as $row) {
             $options[$row['id']] = sprintf(_('Dateiordner der Gruppe: %s'), $row['name']);
         }
         $issues = array();
         $shown_dates = array();
         $query = "SELECT themen_termine.issue_id, termine.date, folder.name, termine.termin_id, date_typ\n                      FROM termine\n                      LEFT JOIN themen_termine USING (termin_id)\n                      LEFT JOIN folder ON (themen_termine.issue_id = folder.range_id)\n                      WHERE termine.range_id = ? AND folder.folder_id IS NULL\n                      ORDER BY termine.date, name";
         $statement = DBManager::get()->prepare($query);
         $statement->execute(array($id));
         $statement->setFetchMode(PDO::FETCH_ASSOC);
         foreach ($statement as $row) {
             if ($row['name']) {
                 continue;
             }
             $name = sprintf(_('Ordner für %s [%s]'), date('d.m.Y', $row['date']), $GLOBALS['TERMIN_TYP'][$row['date_typ']]['name']);
             if ($row['issue_id']) {
                 if (!$issues[$row['issue_id']]) {
                     $issues[$row['issue_id']] = new Issue(array('issue_id' => $row['issue_id']));
                 }
                 $name .= ', ' . my_substr($issues[$row['issue_id']]->toString(), 0, 20);
                 $option_id = $row['issue_id'];
             } else {
                 $option_id = $row['termin_id'];
             }
             $options[$option_id] = $name;
         }
     }
     $this->options = $options;
     $this->id = $id;
 }
Exemple #9
0
 function before_filter(&$action, &$args)
 {
     global $SEM_TYPE, $SEM_CLASS;
     parent::before_filter($action, $args);
     checkObject();
     $this->course = Course::findCurrent();
     if (!$this->course) {
         throw new CheckObjectException(_('Sie haben kein Objekt gewählt.'));
     }
     $this->course_id = $this->course->id;
     PageLayout::setHelpKeyword("Basis.InVeranstaltungKurzinfo");
     PageLayout::setTitle($GLOBALS['SessSemName']["header_line"] . " - " . _("Kurzinfo"));
     Navigation::activateItem('/course/main/info');
     // add skip link
     SkipLinks::addIndex(Navigation::getItem('/course/main/info')->getTitle(), 'main_content', 100);
     $this->sem = Seminar::getInstance($this->course_id);
     $sem_class = $this->sem->getSemClass();
     $this->studygroup_mode = $sem_class["studygroup_mode"];
 }
Exemple #10
0
 /**
  * Before filter, set up the page by initializing the session and checking
  * all conditions.
  *
  * @param String $action Name of the action to be invoked
  * @param Array  $args   Arguments to be passed to the action method
  */
 public function before_filter(&$action, &$args)
 {
     parent::before_filter($action, $args);
     // open session
     page_open(array('sess' => 'Seminar_Session', 'auth' => 'Seminar_Default_Auth', 'perm' => 'Seminar_Perm', 'user' => 'Seminar_User'));
     // set up user session
     include 'lib/seminar_open.php';
     if (!Config::Get()->SCM_ENABLE) {
         throw new AccessDeniedException(_('Die freien Informationsseiten sind nicht aktiviert.'));
     }
     $GLOBALS['auth']->login_if(Request::get('again') && $GLOBALS['auth']->auth['uid'] == 'nobody');
     $this->priviledged = $GLOBALS['perm']->have_studip_perm('tutor', $GLOBALS['SessSemName'][1]);
     if (Request::isXhr()) {
         $this->set_content_type('text/html;charset=Windows-1252');
     } else {
         $this->set_layout($GLOBALS['template_factory']->open('layouts/base'));
     }
     if (!in_array($action, words('index create edit move delete'))) {
         array_unshift($args, $action);
         $action = 'index';
     }
     if (in_array($action, words('create edit move delete')) && !$this->priviledged) {
         throw new AccessDeniedException();
     }
     if ($GLOBALS['perm']->have_studip_perm('tutor', $GLOBALS['SessSemName'][1])) {
         $widget = new ActionsWidget();
         $widget->addLink(_('Neuen Eintrag anlegen'), URLHelper::getLink('dispatch.php/course/scm/create'), Icon::create('add', 'clickable'))->asDialog();
         Sidebar::get()->addWidget($widget);
     }
     PageLayout::setHelpKeyword('Basis.Informationsseite');
     Navigation::activateItem('/course/scm');
     checkObject();
     // do we have an open object?
     checkObjectModule('scm');
     object_set_visit_module('scm');
     // Set sidebar image
     $sidebar = Sidebar::get();
     $sidebar->setImage('sidebar/info-sidebar.png');
 }
Exemple #11
0
if ($view == "wikiprint") {
    printWikiPage($keyword, $version);
    page_close();
    die;
} elseif ($view == "wikiprintall") {
    printAllWikiPages($SessSemName[1], $SessSemName['header_line']);
    page_close();
    die;
} elseif ($view == "export_pdf") {
    include_once 'lib/classes/exportdocument/ExportPDF.class.php';
    exportWikiPagePDF($keyword, $version);
} elseif ($view == "exportall_pdf") {
    include_once 'lib/classes/exportdocument/ExportPDF.class.php';
    exportAllWikiPagesPDF("all", Request::option('sortby'));
}
checkObject();
// do we have an open object?
checkObjectModule("wiki");
//are we allowed to use this module here?
object_set_visit_module("wiki");
PageLayout::setHelpKeyword("Basis.Wiki");
// Hilfeseite im Hilfewiki
PageLayout::setTitle($SessSemName["header_line"] . " - " . _("Wiki"));
if (in_array(Request::get('view'), words('listnew listall export'))) {
    Navigation::activateItem('/course/wiki/' . $view);
} else {
    Navigation::activateItem('/course/wiki/show');
}
if (Request::option('wiki_comments') == "all") {
    // show all comments
    $show_wiki_comments = "all";
Exemple #12
0
	- Измените конструктор класса SuperUser, вызвав родительский конструктор
	- Передайте родительскому конструктору необходимые значения
	- Измените метод showInfo() класса SuperUser, вызвав родительский метод showInfo()
	- Передайте родительскому методу необходимые значения
	*/
/*
	ЗАДАНИЕ 8
	- Сделайте все параметры конструктора класса User параметрами по умолчанию со значениями "пустая строка"("")
	- В конструкторе класса User генерируйте исключение, если введены не все данные
	- Опишите перехват исключения и выводите в браузер сообщение об ошибке
	- Попробуйте создать экземпляр класса User без какого-либо параметра(-ов)
	*/
/*
	ЗАДАНИЕ 9
	- Создайте константу класса User INFO_TITLE
	- Присвойте константе INFO_TITLE строковое значение "Данные пользователя:"
	- Обратитесь к константе INFO_TITLE перед вызовами метода showInfo()
	- Запустите код и проверьте его работоспособность
	- Создайте метод showTitle() в классе User
	- Опишите метод showTitle(), чтобы он выводил в браузер значение константы INFO_TITLE
	- Обратитесь к метод showTitle() перед вызовами метода showInfo()
	*/
/*
	ЗАДАНИЕ 10
	- Создайте абстрактный класс AUser
	- В абстрактном классе AUser объявите абстрактный метод showInfo()
	- Обновите класс User, унаследовав его от абстрактного класса AUser
	- Внесите в класс User необходимые изменения
	- Запустите код и проверьте его работоспособность
	*/
/*
Exemple #13
0
$sql = ob_get_clean();
T()->like($sql, '/^$/i', 'sql');
T()->ok($obj_tmp === $obj2, 'update cache');
ob_start();
$obj_tmp = $storage->loadObjectByKey('nick', 'vasya2');
$sql = ob_get_clean();
T()->like($sql, '/select/i', 'sql');
T()->ok(isNull($obj_tmp), 'update cache');
M('Db')->traceOff();
#
# Querying
#
$d = $DATA_2;
$d['nick'] = 'petya';
$identityMap->reset();
$res = iterator_to_array($storage->request(new RM_Db_Query($TABLE))->sort('nick'));
T()->is(count($res), 3, 'quering(1)');
checkObject($res[0], 'MyObject', 1, qw2('val>qwerty'));
checkObject($res[1], 'MyObject', 4, $d);
checkObject($res[2], 'MyObject', 3, $DATA_1);
$identityMap->reset();
$res = iterator_to_array($storage->query("SELECT * FROM {$TABLE} WHERE nick_name IS NULL or nick_name<>? ORDER BY a", "zzzzzz"));
T()->is(count($res), 3, 'quering(2)');
checkObject($res[0], 'MyObject', 1, qw2('val>qwerty'));
checkObject($res[1], 'MyObject', 3, $DATA_1);
checkObject($res[2], 'MyObject', 4, $d);
# ctorArgs
T()->is($res[0]->_param1, 'value1', 'ctorArgs');
T()->is($res[0]->_param2, 'value2', 'ctorArgs');
T()->ok($res[0]->validator() === $validator, 'ctorArgs');
T()->ok(1, 'end');