static function getDayDates($user_id, $weekday)
 {
     //get current semester
     $semdata = new \SemesterData();
     $current_semester = $semdata->getCurrentSemesterData();
     $current_semester_id = $current_semester['semester_id'];
     return \CalendarScheduleModel::getEntries($user_id, $current_semester, 00, 2000, array($weekday - 1), false);
 }
Exemple #2
0
 /**
  * this action is the main action of the schedule-controller, setting the environment for the timetable,
  * accepting a comma-separated list of days.
  *
  * @param  string  a list of an arbitrary mix of the numbers 0-6, separated with a comma (e.g. 1,2,3,4,5 (for Monday to Friday, the default))
  */
 function index_action($days = false)
 {
     if ($GLOBALS['perm']->have_perm('admin')) {
         $inst_mode = true;
     }
     $my_schedule_settings = $GLOBALS['user']->cfg->SCHEDULE_SETTINGS;
     // set the days to be displayed
     if ($days === false) {
         if (Request::getArray('days')) {
             $this->days = array_keys(Request::getArray('days'));
         } else {
             $this->days = array(0, 1, 2, 3, 4, 5, 6);
         }
     } else {
         $this->days = explode(',', $days);
     }
     // try to find the correct institute-id
     $institute_id = Request::option('institute_id', $SessSemName[1] ? $SessSemName[1] : Request::option('cid', false));
     if (!$institute_id) {
         $institute_id = $GLOBALS['user']->cfg->MY_INSTITUTES_DEFAULT;
     }
     if (!$institute_id || in_array(get_object_type($institute_id), words('inst fak')) === false) {
         throw new Exception(sprintf(_('Kann Einrichtungskalendar nicht anzeigen!' . 'Es wurde eine ungültige Instituts-Id übergeben (%s)!', $institute_id)));
     }
     // load semester-data and current semester
     $semdata = new SemesterData();
     $this->semesters = $semdata->getAllSemesterData();
     if (Request::option('semester_id')) {
         $this->current_semester = $semdata->getSemesterData(Request::option('semester_id'));
     } else {
         $this->current_semester = $semdata->getCurrentSemesterData();
     }
     $this->entries = (array) CalendarInstscheduleModel::getInstituteEntries($GLOBALS['user']->id, $this->current_semester, 8, 20, $institute_id, $this->days);
     Navigation::activateItem('/course/main/schedule');
     PageLayout::setHelpKeyword('Basis.TerminkalenderStundenplan');
     PageLayout::setTitle($GLOBALS['SessSemName']['header_line'] . ' - ' . _('Veranstaltungs-Stundenplan'));
     $zoom = Request::int('zoom', 0);
     $this->controller = $this;
     $this->calendar_view = new CalendarWeekView($this->entries, 'instschedule');
     $this->calendar_view->setHeight(40 + 20 * $zoom);
     $this->calendar_view->setRange($my_schedule_settings['glb_start_time'], $my_schedule_settings['glb_end_time']);
     $this->calendar_view->groupEntries();
     // if enabled, group entries with same start- and end-date
     URLHelper::addLinkParam('zoom', $zoom);
     URLHelper::addLinkParam('semester_id', $this->current_semester['semester_id']);
     $style_parameters = array('whole_height' => $this->calendar_view->getOverallHeight(), 'entry_height' => $this->calendar_view->getHeight());
     $factory = new Flexi_TemplateFactory($this->dispatcher->trails_root . '/views');
     PageLayout::addStyle($factory->render('calendar/stylesheet', $style_parameters));
     if (Request::option('printview')) {
         PageLayout::addStylesheet('print.css');
     } else {
         PageLayout::addStylesheet('print.css', array('media' => 'print'));
     }
 }
Exemple #3
0
 function get_seminars_by_sem_tree_id($sem_tree_id, $term_id)
 {
     $db = DBManager::get();
     $sem_data_obj = new SemesterData();
     $semester = $sem_data_obj->getSemesterData($term_id);
     $stmt = $db->prepare('SELECT s.Seminar_id AS seminar_id, s.Name AS name
                           FROM seminar_sem_tree st
                           JOIN seminare s ON (st.seminar_id = s.Seminar_id)
                           WHERE st.sem_tree_id = ?  AND s.start_time <= ?
                           AND (s.start_time + s.duration_time >= ? OR duration_time = -1)');
     $stmt->execute(array($sem_tree_id, $semester['beginn'], $semester['beginn']));
     return $stmt->fetchAll();
 }
Exemple #4
0
 public function index_action()
 {
     if ($_SESSION['sem_portal']['bereich'] != "all") {
         $class = $GLOBALS['SEM_CLASS'][$_SESSION['sem_portal']['bereich']];
         $this->anzahl_seminare_class = $class->countSeminars();
         $sem_status = array_keys($class->getSemTypes());
     } else {
         $sem_status = false;
     }
     $init_data = array("level" => "f", "cmd" => "qs", "show_class" => $_SESSION['sem_portal']['bereich'], "group_by" => 0, "default_sem" => ($default_sem = SemesterData::GetSemesterIndexById($_SESSION['_default_sem'])) !== false ? $default_sem : "all", "sem_status" => $sem_status);
     if (Request::option('reset_all')) {
         $_SESSION['sem_browse_data'] = null;
     }
     $this->sem_browse_obj = new SemBrowse($init_data);
     $sem_browse_data['show_class'] = $_SESSION['sem_portal']['bereich'];
     if (!$GLOBALS['perm']->have_perm("root")) {
         $this->sem_browse_obj->target_url = "dispatch.php/course/details/";
         $this->sem_browse_obj->target_id = "sem_id";
     } else {
         $this->sem_browse_obj->target_url = "seminar_main.php";
         $this->sem_browse_obj->target_id = "auswahl";
     }
     $this->toplist_entries = $this->getToplistEntries($sem_status);
     $this->controller = $this;
 }
 function navigator ($print_view = false) {
     global $cssSw, $view_mode;
     if (!$print_view){
     ?>
     <table border="0" celpadding="2" cellspacing="0" width="99%" align="center">
     <form method="POST" name="schedule_form" action="<?= URLHelper::getLink('?navigate=TRUE&quick_view=view_group_schedule&quick_view_mode='.$view_mode) ?>">
         <?= CSRFProtection::tokenTag() ?>
         <tr>
             <td class="<? $cssSw->switchClass(); echo $cssSw->getClass() ?>" width="4%">&nbsp;
             </td>
             <td class="<? echo $cssSw->getClass() ?>" width="96%" colspan="3"><font size=-1><b><?=_("Semester:")?></b></font>
             </td>
         </tr>
         <tr>
             <td class="<? echo $cssSw->getClass() ?>" width="4%" rowspan="2">&nbsp;
             </td>
             <td class="<? echo $cssSw->getClass() ?>" width="40%" valign="top">
                 <?= SemesterData::GetSemesterSelector(array('name' => 'sem_schedule_choose', 'onChange' => 'document.schedule_form.submit()'), $this->semester['semester_id'],'semester_id',false)?>
                 <?= Button::create(_('Auswählen'), 'jump') ?><br>
                 <label>
                 <input type="radio" onChange="document.schedule_form.submit()" style="vertical-align:bottom" <?=($this->timespan == 'course_time' ? 'checked' : '')?> name="sem_time_choose" value="course_time">
                 <?=_("Vorlesungszeit")?>
                 </label>
                 <label>
                 <input type="radio" onChange="document.schedule_form.submit()" style="vertical-align:bottom" <?=($this->timespan == 'sem_time' ? 'checked' : '')?> name="sem_time_choose" value="sem_time">
                 <?=_("vorlesungsfreie Zeit")?>
                 </label>
             </td>
             <td class="<? echo $cssSw->getClass() ?>" width="60%" valign="top">
                 <?=_("Eine Raumgruppe auswählen")?>:<br>
                 <select name="group_schedule_choose_group" onChange="document.schedule_form.submit()">
                 <?
                 $room_group = RoomGroups::GetInstance();
                 foreach($room_group->getAvailableGroups() as $gid){
                     echo '<option value="'.$gid.'" '
                         . ($this->group_id == $gid ? 'selected' : '') . '>'
                         .htmlReady(my_substr($room_group->getGroupName($gid),0,85))
                         .' ('.$room_group->getGroupCount($gid).')</option>';
                 }
                 ?>
                 </select>
                 <?= Button::create(_('Auswählen')) ?>
             </font>
             </td>
             <td class="<? echo $cssSw->getClass() ?>" valign="middle">
                 
             </td>                    
         </tr>
         <tr>
             <td class="<? echo $cssSw->getClass() ?>" colspan="4"><font size="-1">&nbsp;</font>
             </td>
         </tr>
     </table>
 <?
     }
 }
Exemple #6
0
 static function findAllByUser($user_id)
 {
     foreach (\SemesterData::GetSemesterArray() as $key => $value) {
         if (isset($value['beginn']) && $value['beginn']) {
             $sem_start_times[] = $value['beginn'];
         }
     }
     $sem_number_sql = "INTERVAL(start_time," . join(",", $sem_start_times) . ")";
     $sem_number_end_sql = "IF(duration_time=-1,-1,INTERVAL(start_time+duration_time," . join(",", $sem_start_times) . "))";
     $query = "SELECT seminare.VeranstaltungsNummer AS sem_nr, \n\t\t\t\t\t\tschedule_seminare.color AS color, \n\t\t\t\t\t\t seminare.Name, seminare.Seminar_id, \n\t\t\t\t\t\t seminare.status as sem_status,\n\t\t\t\t\t\t seminar_user.status, seminar_user.gruppe, \n\t\t\t\t\t\t seminare.chdate, seminare.visible, \n\t\t\t\t\t\t admission_binding,\n\t\t\t\t\t\t modules,IFNULL(visitdate,0) as visitdate, \n\t\t\t\t\t\t admission_prelim, \n\t\t\t\t\t\t {$sem_number_sql} as sem_number, \n\t\t\t\t\t\t {$sem_number_end_sql} as sem_number_end {$add_fields}\n\t\t\t\tFROM seminar_user \n\t\t\t\tLEFT JOIN seminare  USING (Seminar_id)\n\t\t\t\tLEFT JOIN schedule_seminare      ON (schedule_seminare.user_id='{$user_id}'   \n\t\t\t\t\tAND schedule_seminare.seminar_id=seminare.Seminar_id)\n\t\t\t\tLEFT JOIN object_user_visits ouv ON (ouv.object_id=seminar_user.Seminar_id  \n\t\t\t\t\tAND ouv.user_id='{$user_id}' AND ouv.type='sem')\n\t\t\t\t{$add_query}\n\t\t\t\tWHERE seminar_user.user_id = '{$user_id}'";
     $stmt = \DBManager::get()->query($query);
     return $stmt->fetchAll();
 }
Exemple #7
0
 /**
  * returns schedule for a given user and semester
  *
  * @get /user/:user_id/schedule/:semester_id
  * @get /user/:user_id/schedule
  */
 public function getSchedule($user_id, $semester_id = NULL)
 {
     if ($user_id !== $GLOBALS['user']->id) {
         $this->error(401);
     }
     $semdata = new \SemesterData();
     $current_semester = isset($semester_id) ? $semdata->getSemesterData($semester_id) : $semdata->getCurrentSemesterData();
     if (!$current_semester) {
         $this->notFound('No such semester.');
     }
     $schedule_settings = \UserConfig::get($user_id)->SCHEDULE_SETTINGS;
     $days = $schedule_settings['glb_days'];
     $entries = \CalendarScheduleModel::getEntries($user_id, $current_semester, $schedule_settings['glb_start_time'], $schedule_settings['glb_end_time'], $days, $visible = false);
     $json = array();
     foreach ($entries as $number_of_day => $schedule_of_day) {
         $entries = array();
         foreach ($schedule_of_day->entries as $entry) {
             $entries[$entry['id']] = self::entryToJson($entry);
         }
         $json[$number_of_day + 1] = $entries;
     }
     $this->etag(md5(serialize($json)));
     return $json;
 }
 /**
  *
  **/
 public static function getSemester($timestamp = null)
 {
     static $semesters;
     if (!isset($semesters)) {
         $semesters = \SemesterData::GetSemesterArray();
     }
     if (!$timestamp) {
         $timestamp = time();
     }
     foreach ($semesters as $semester) {
         if ($timestamp >= $semester['beginn'] && $timestamp <= $semester['ende']) {
             return $semester['semester_id'];
         }
     }
     return false;
 }
 /**
  * 
  **/
 public function routes(&$router)
 {
     $router->get('/semesters', function () use($router) {
         $temp = \SemesterData::GetSemesterArray();
         $semesters = array();
         foreach ($temp as $sem) {
             if ($sem['semester_id']) {
                 $semesters[$sem['semester_id']] = reset($router->dispatch('get', '/semesters/:semester_id', $sem['semester_id']));
             }
         }
         $semesters = array_values($semesters);
         $router->render(compact('semesters'));
     });
     $router->get('/semesters/:semester_id', function ($semester_id) use($router) {
         $temp = \SemesterData::getInstance()->getSemesterData($semester_id);
         if (!$temp) {
             $router->halt(404, sprintf('Semester "%s" not found', $semester_id));
         }
         $semester = array('semester_id' => $temp['semester_id'], 'title' => $temp['name'], 'description' => $temp['description'], 'begin' => $temp['beginn'], 'end' => $temp['ende'], 'seminars_begin' => $temp['vorles_beginn'], 'seminars_end' => $temp['vorles_ende']);
         $router->render(compact('semester'));
     });
 }
 function StudipSemSearch($form_name = "search_sem", $auto_search = true, $visible_only = false, $sem_class = 'all')
 {
     $search_fields = array('title' => array('type' => 'text'), 'sub_title' => array('type' => 'text'), 'number' => array('type' => 'text'), 'comment' => array('type' => 'text'), 'lecturer' => array('type' => 'text'), 'scope' => array('type' => 'text'), 'quick_search' => array('type' => 'text'), 'type' => array('type' => 'select', 'default_value' => 'all', 'max_length' => 35, 'options_callback' => array($this, 'getSelectOptions')), 'sem' => array('type' => 'select', 'default_value' => 'all', 'options_callback' => array($this, 'getSelectOptions')), 'category' => array('type' => 'select', 'default_value' => 'all', 'max_length' => 50, 'options_callback' => array($this, 'getSelectOptions')), 'combination' => array('type' => 'select', 'default_value' => 'AND', 'options_callback' => array($this, 'getSelectOptions')), 'scope_choose' => array('type' => 'select', 'default_value' => 'root', 'max_length' => 45, 'options_callback' => array($this, 'getSelectOptions')), 'range_choose' => array('type' => 'select', 'default_value' => 'root', 'max_length' => 45, 'options_callback' => array($this, 'getSelectOptions')), 'qs_choose' => array('type' => 'select', 'default_value' => 'title_lecturer_number', 'options_callback' => array($this, 'getSelectOptions')));
     $search_buttons = array('do_search' => array('caption' => _("Suchen"), 'info' => _("Suche starten")), 'sem_change' => array('caption' => _('Auswählen'), 'info' => _("anderes Semester auswählen")), 'new_search' => array('caption' => _('Neue Suche'), 'info' => _("Neue Suche starten")));
     //workaround: Qicksearch ändert den Namen des Eingabefeldes
     if (Request::get("search_sem_quick_search_parameter")) {
         Request::set('search_sem_quick_search', Request::get("search_sem_quick_search_parameter"));
     }
     $this->form = new StudipForm($search_fields, $search_buttons, $form_name, false);
     $this->form_name = $form_name;
     $this->sem_dates = SemesterData::GetSemesterArray();
     $this->visible_only = $visible_only;
     $this->search_sem_class = $sem_class;
     if ($this->form->isClicked('do_search') || $this->form->isSended() && (!$this->form->isClicked('sem_change') || strlen($this->form->getFormFieldValue('quick_search')) > 2)) {
         $this->search_button_clicked = true;
         if ($auto_search) {
             $this->doSearch();
             $this->search_done = true;
         }
     }
     $this->new_search_button_clicked = $this->form->isClicked('new_search');
     $this->sem_change_button_clicked = $this->form->isClicked('do_search');
 }
Exemple #11
0
 static function GetSemesterSelector($select_attributes = null, $default = 0, $option_value = 'semester_id', $include_all = true)
 {
     $semester = SemesterData::GetSemesterArray();
     unset($semester[0]);
     if ($include_all) {
         $semester['all'] = array('name' => _("alle"), 'semester_id' => 0);
     }
     $semester = array_reverse($semester, true);
     if (!$select_attributes['name']) {
         $select_attributes['name'] = 'sem_select';
     }
     $out = chr(10) . '<select ';
     foreach ($select_attributes as $key => $value) {
         $out .= ' ' . $key . '="' . $value . '" ';
     }
     $out .= '>';
     foreach ($semester as $sem_key => $one_sem) {
         $one_sem['key'] = $sem_key;
         $out .= "\n<option value=\"{$one_sem[$option_value]}\" " . ($one_sem[$option_value] == $default ? "selected" : "") . ">" . htmlReady($one_sem['name']) . "</option>";
     }
     $out .= chr(10) . '</select>';
     return $out;
 }
/**
* Exports data of the given range.
*
* This function calls the functions that export the data sepcified by the given $export_range.
* It calls the function output_data afterwards.
*
* @access   public
* @param        string  $range_id   Stud.IP-range_id for export
*/
function export_range($range_id)
{
    global $o_mode, $range_name, $ex_person_details, $persons, $ex_sem;
    // Ist die Range-ID eine Einrichtungs-ID?
    $query = "SELECT Name FROM Institute WHERE Institut_id = ?";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($range_id));
    $name = $statement->fetchColumn();
    if ($name) {
        $range_name = $name;
        output_data(xml_header(), $o_mode);
        $output_startet = true;
        export_inst($range_id);
    }
    // Ist die Range-ID eine Fakultaets-ID? Dann auch untergeordnete Institute exportieren!
    $query = "SELECT Name, Institut_id\n              FROM Institute\n              WHERE fakultaets_id = ? AND Institut_id != fakultaets_id";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($range_id));
    while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
        if ($row['Name'] != '') {
            // output_data ( xml_header(), $o_mode);
            export_inst($row['Institut_id']);
        }
    }
    // Ist die Range-ID eine Seminar-ID?
    $query = "SELECT Name, Seminar_id, Institut_id\n              FROM seminare\n              WHERE Seminar_id = ?";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($range_id));
    $row = $statement->fetch(PDO::FETCH_ASSOC);
    if ($row && $row['Name'] != '') {
        $range_name = $row['Name'];
        if (!$output_startet) {
            output_data(xml_header(), $o_mode);
            $output_startet = true;
        }
        export_inst($row['Institut_id'], $row['Seminar_id']);
    }
    //  Ist die Range-ID ein Range-Tree-Item?
    if ($range_id != 'root') {
        $tree_object = new RangeTreeObject($range_id);
        $range_name = $tree_object->item_data["name"];
        // Tree-Item ist ein Institut:
        if ($tree_object->item_data['studip_object'] == 'inst') {
            if (!$output_startet) {
                output_data(xml_header(), $o_mode);
                $output_startet = true;
            }
            export_inst($tree_object->item_data['studip_object_id']);
        }
        // Tree-Item hat Institute als Kinder:
        $inst_array = $tree_object->GetInstKids();
        if (count($inst_array) > 0) {
            if (!$output_startet) {
                output_data(xml_header(), $o_mode);
                $output_startet = true;
            }
            while (list($key, $inst_ids) = each($inst_array)) {
                export_inst($inst_ids);
            }
        }
    }
    $query = "SELECT 1 FROM sem_tree WHERE sem_tree_id = ?";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($range_id));
    if ($statement->fetchColumn() || $range_id == 'root') {
        if (!$output_startet) {
            output_data(xml_header(), $o_mode);
            $output_startet = true;
        }
        if (isset($ex_sem) && ($semester = Semester::find($ex_sem))) {
            $args = array('sem_number' => array(SemesterData::GetSemesterIndexById($ex_sem)));
        } else {
            $args = array();
        }
        if ($range_id != 'root') {
            $the_tree = TreeAbstract::GetInstance('StudipSemTree', $args);
            $sem_ids = array_unique($the_tree->getSemIds($range_id, true));
        }
        if (is_array($sem_ids) || $range_id == 'root') {
            if (is_array($sem_ids)) {
                $query = "SELECT DISTINCT Institut_id\n                          FROM seminare\n                          WHERE Seminar_id IN (?)";
                $statement = DBManager::get()->prepare($query);
                $statement->execute(array($sem_ids));
                $to_export = $statement->fetchAll(PDO::FETCH_COLUMN);
            } else {
                $sem_ids = 'root';
                $query = "SELECT DISTINCT Institut_id\n                          FROM seminare\n                          INNER JOIN seminar_sem_tree USING (seminar_id)";
                if ($semester) {
                    $query .= " WHERE seminare.start_time <= :begin\n                                  AND (:begin <= (seminare.start_time + seminare.duration_time) OR\n                                       seminare.duration_time = -1)";
                    $statement = DBManager::get()->prepare($query);
                    $statement->bindValue(':begin', $semester->beginn);
                    $statement->execute();
                } else {
                    $statement = DBManager::get()->query($query);
                }
                $to_export = $statement->fetchAll(PDO::FETCH_COLUMN);
            }
            foreach ($to_export as $inst) {
                export_inst($inst, $sem_ids);
            }
        }
    }
    if ($ex_person_details && is_array($persons)) {
        export_persons(array_keys($persons));
    }
    output_data(xml_footer(), $o_mode, $flush = true);
}
    function ExternSemBrowseTemplate (&$module, $start_item_id) {

        global $SEM_TYPE,$SEM_CLASS;
        $semester = new SemesterData();
        $all_semester = $semester->getAllSemesterData();
        array_unshift($all_semester, 0);

        $this->group_by_fields = array( array('name' => _("Semester"), 'group_field' => 'sem_number'),
                                        array('name' => _("Bereich"), 'group_field' => 'bereich'),
                                        array('name' => _("Lehrende"), 'group_field' => 'fullname', 'unique_field' => 'username'),
                                        array('name' => _("Typ"), 'group_field' => 'status'),
                                        array('name' => _("Einrichtung"), 'group_field' => 'Institut', 'unique_field' => 'Institut_id'));

        $this->module = $module;
        $this->sem_browse_data["group_by"] = $this->module->config->getValue("Main", "grouping");
        $this->sem_dates = $all_semester;
        $this->sem_dates[0] = array("name" => sprintf(_("vor dem %s"),$this->sem_dates[1]['name']));

        // reorganize the $SEM_TYPE-array
        foreach ($SEM_CLASS as $key_class => $class) {
            $i = 0;
            foreach ($SEM_TYPE as $key_type => $type) {
                if ($type["class"] == $key_class) {
                    $i++;
                    $this->sem_types_position[$key_type] = $i;
                }
            }
        }

        $switch_time = mktime(0, 0, 0, date("m"),
                date("d") + 7 * $this->module->config->getValue("Main", "semswitch"), date("Y"));
        // get current semester
        $current_sem = get_sem_num($switch_time) + 1;

        switch ($this->module->config->getValue("Main", "semstart")) {
            case "previous" :
                if (isset($all_semester[$current_sem - 1])) {
                    $current_sem--;
                }
                break;
            case "next" :
                if (isset($all_semester[$current_sem + 1])) {
                    $current_sem++;
                }
                break;
            case "current" :
                break;
            default :
                if (isset($all_semester[$this->module->config->getValue('Main', 'semstart')])) {
                    $current_sem = $this->module->config->getValue('Main', 'semstart');
                }
        }

        $last_sem = $current_sem + $this->module->config->getValue('Main', 'semrange');
        if ($last_sem < $current_sem)
            $last_sem = $current_sem;
        if (!isset($all_semester[$last_sem]))
            $last_sem = sizeof($all_semester);

        for (;$last_sem > $current_sem; $last_sem--)
            $this->sem_number[] = $last_sem - 1;

        $semclasses = $this->module->config->getValue('Main', 'semclasses');
        foreach ($SEM_TYPE as $key => $type) {
            if (in_array($type['class'], (array) $semclasses))
                $this->sem_browse_data['sem_status'][] = $key;
        }

        $this->get_sem_range_tree($start_item_id, true);
    }
Exemple #14
0
    function showSearchList($search_array, $check_assigns = FALSE)
    {
        //create the query
        if ($search_array['resources_search_range']){
            $search_only = $this->getResourcesSearchRange($search_array['resources_search_range']);
        }

        $parameters = array();
        if ($search_array['properties']) {
            $query = "SELECT a.resource_id, COUNT(a.resource_id) AS resource_id_count
                      FROM resources_objects_properties AS a
                      LEFT JOIN resources_objects AS b USING (resource_id)
                      LEFT JOIN resources_categories USING (category_id)";
            if (!hasGlobalOccupationAccess()) {
                $query .= " LEFT JOIN `resources_user_resources` AS rur ON (rur.`resource_id` = b.`resource_id`)";
            }
            $query .= " WHERE ";

            $conditions = array();
            $i = 0;
            foreach ($search_array['properties'] as $key => $val) {
                // if ($val == 'on') {
                //     $val = 1;
                // }

                //let's create some possible wildcards
                if (strpos($val, '<=') !== false) {
                    $val     = (int) substr($val, strpos($val, '<=') + 2);
                    $linking = '<=';
                } elseif (strpos($val, '>=') !== false) {
                    $val     = (int) substr($val, strpos($val, '>=') + 2);
                    $linking = '>=';
                } elseif (strpos($val, '<') !== false) {
                    $val     = (int) substr($val, strpos($val, '<') + 1);
                    $linking = '<';
                } elseif (strpos($val, '>') !== false) {
                    $val     = (int) substr($val, strpos($val, '>') + 1);
                    $linking = '>';
                } else {
                    $linking = '=';
                }
                $conditions[] = "(property_id = :key{$i} AND state {$linking} :state{$i})";
                $parameters[':key' . $i]   = $key;
                $parameters[':state' . $i] = $val;

                $i += 1;
            }
            $query .= (count($conditions) > 0)
                    ? implode(' OR ', $conditions)
                    : '1';

            $query .= " AND b.name LIKE CONCAT('%', :needle, '%')";
            $parameters[':needle'] = $search_array['search_exp'];

            if ($this->supress_hierachy_levels) {
                $query .= " AND b.category_id != ''";
            }
            if ($this->show_only_rooms) {
                $query .= " AND is_room = 1";
            }
            if ($search_array['resources_search_range']) {
                $query .= " AND b.resource_id IN (:resource_ids)";
                $parameters[':resource_ids'] = $resource_ids ?: '';
            }

            if (!hasGlobalOccupationAccess()) {
                $query .= " AND (b.`owner_id`=:user OR rur.`user_id`=:user)";
                $parameters[':user'] = $GLOBALS['user']->id;
            }

            $query .= " GROUP BY a.resource_id
                        HAVING resource_id_count = :count";
            $parameters[':count'] = $i;

            $query .=" ORDER BY b.name";
        } else {
            $query = "SELECT resource_id
                      FROM resources_objects AS ro
                      LEFT JOIN resources_categories USING (category_id)";

            if (!hasGlobalOccupationAccess()) {
                $query .= " LEFT JOIN `resources_user_resources` USING (`resource_id`)";
            }
            $query .= " WHERE ro.name LIKE CONCAT('%', :needle, '%')";

            $parameters[':needle'] = $search_array['search_exp'];

            if ($this->supress_hierachy_levels) {
                $query .= " AND ro.category_id != ''";
            }
            if ($this->show_only_rooms) {
                $query .= " AND is_room = 1";
            }
            if ($search_array['resources_search_range']) {
                $query .= " AND ro.resource_id IN (:resource_ids)";
                $parameters[':resource_ids'] = $search_only ?: '';
            }

            if (!hasGlobalOccupationAccess()) {
                $query .= " AND (ro.`owner_id`=:user OR `user_id`=:user)";
                $parameters[':user'] = $GLOBALS['user']->id;
            }

            $query .= " ORDER BY ro.name";
        }

        $statement = DBManager::get()->prepare($query);
        $statement->execute($parameters);
        $resource_ids = $statement->fetchAll(PDO::FETCH_COLUMN);

        //if we have an empty result
        if (count($resource_ids) == 0 && $level == 0) {
            return FALSE;
        }

        foreach ($resource_ids as $resource_id) {
            $found_resources[$resource_id] = TRUE;
        }
        $day_of_week = false;
        //do further checks to determine free resources inthe given time range
        if ($search_array["search_assign_begin"] && $check_assigns) {
            $multiOverlaps = new CheckMultipleOverlaps;

            // >> changed for advanced search for room administrators
            if ($search_array["search_repeating"])
            {
                // is this slot empty for the rest of the term?
                $semester_data = new SemesterData();
                $semester = $semester_data->getSemesterDataByDate($search_array["search_assign_begin"]);
                // create the dummy assign object
                $assObj = new AssignObject('');
                $assObj->setBegin($search_array["search_assign_begin"]);
                $assObj->setEnd($search_array["search_assign_end"]);
                $assObj->setRepeatEnd($semester["vorles_ende"]);
                $assObj->setRepeatInterval(1);
                $assObj->setRepeatQuantity(-1);

                // calculate stud.IP-day-of-week
                $day_of_week = date("w", $search_array["search_assign_begin"]);
                $day_of_week = $day_of_week == 0 ? 7 : $day_of_week;

                $assObj->setRepeatDayOfWeek($day_of_week);
                // set time range for checks
                $multiOverlaps->setAutoTimeRange(Array($assObj));
                // generate and get the events represented by assign object
                $events = $assObj->getEvents();

                foreach($events as $ev)
                {
                    $event[$ev->getId()] = $ev;
                }
            } else
            {
                // the code for one specific slot
                $assEvt = new AssignEvent('', $search_array["search_assign_begin"], $search_array["search_assign_end"], '', '');
                $multiOverlaps->setTimeRange($search_array["search_assign_begin"], $search_array["search_assign_end"]);
                $event[$assEvt->getId()] = $assEvt;
            }
            // << changed for advanced search for room administrators

            //add the found resources to the check-set
            foreach ($found_resources as $key=>$val) {
                $multiOverlaps->addResource($key, $day_of_week);
            }

            $multiOverlaps->checkOverlap($event, $result);
            //output
            foreach ($found_resources as $key=>$val) {
                if (!$result[$key]) {
                    $this->showListObject($key);
                    $result_count++;
                }
            }
        } else {
            //output
            foreach ($found_resources as $key=>$val) {
                $this->showListObject($key);
                $result_count++;
            }
        }

    return $result_count;
    }
    function showRequestList() {
        global $_fullname_sql, $CANONICAL_RELATIVE_PATH_STUDIP;

        $license_to_kill = (get_config('RESOURCES_ALLOW_DELETE_REQUESTS') && getGlobalPerms($GLOBALS['user']->id) == 'admin');
        if ($license_to_kill){
            echo chr(10) . '<script type="text/javascript">';
            echo chr(10) . '
            function auswahl_umkehr(){
                my_elements = document.forms[\'list_requests_form\'].elements[\'requests_marked_to_kill[]\'];
                if(!my_elements.length){
                    if(my_elements.checked)
                        my_elements.checked = false;
                    else
                        my_elements.checked = true;
                } else {
                    for(i = 0; i < my_elements.length; ++i){
                        if(my_elements[i].checked)
                        my_elements[i].checked = false;
                        else
                        my_elements[i].checked = true;
                    }
                }
            }';
            echo chr(10) . '</script>';
            echo chr(10) . '<form name="list_requests_form" method="post" action="'.URLHelper::getLink().'">';
            echo CSRFProtection::tokenTag();
            ?>
            <div align="right" style="padding-right: 5px">
                <?php 
echo LinkButton::create(_('Auswahl umkehren'), 'javascript:auswahl_umkehr();');
?>
                <?php 
echo Button::create('Löschen', 'do_delete_requests', array(title => _('Ausgewählte Anfragen löschen')));
?>
            </div>
            <br>
            <?
        }
        $i = 0;
        $zt = new ZebraTable(array('width' => '99%', 'padding' => '1', 'align' => 'center'));
        $zt->switchClass();
        echo $zt->openRow();
        echo $zt->cell("&nbsp;", array("class" => "content_seperator"));
        echo $zt->cell("<font size=\"-1\"><b>" . _("Zähler") . "</b></font>", array("class" => "content_seperator", 'colspan' => '3'));
        echo $zt->cell("<font size=\"-1\"><b>" . _("V.-Nummer") . "</b></font>", array("class" => "content_seperator"));
        echo $zt->cell("<font size=\"-1\"><b>" . _("Titel") . "</b></font>", array("class" => "content_seperator"));
        echo $zt->cell("<font size=\"-1\"><b>" . _("Dozenten") . "</b></font>", array("class" => "content_seperator"));
        echo $zt->cell("<font size=\"-1\"><b>" . _("Anfrager") . "</b></font>", array("class" => "content_seperator"));
        echo $zt->cell("<font size=\"-1\"><b>" . _("Start-Semester") . "<b></font>", array("class" => "content_seperator"));
        if ($license_to_kill){
            echo $zt->cell("<font size=\"-1\"><b>" . _("löschen") . "<b></font>", array("class" => "content_seperator", 'width' => '5%'));
        }
        echo $zt->closeRow();
        ?>
        <?
        foreach ($_SESSION['resources_data']['requests_working_on'] as $key => $val) {
            $i++;
            if ($_SESSION['resources_data']['requests_open'][$val['request_id']] || !$_SESSION['resources_data']['skip_closed_requests']) {
                $reqObj = new RoomRequest($val['request_id']);
                $semObj = new Seminar($reqObj->getSeminarId());

                if ($semObj->getName() != "") {
                    echo $zt->openRow();
                    //echo "<font size=\"-1\">";
                    echo $zt->cell("&nbsp;");
                    echo $zt->cell("<font size=\"-1\">$i.</font>");
                    echo $zt->cell("<a href=\"resources.php?view=edit_request&edit=".$val['request_id']."\">".Icon::create('edit', 'clickable', ['title' => _("Anfrage bearbeiten")])->asImg()."</a>");
                    echo $zt->cell((($_SESSION['resources_data']['requests_open'][$val['request_id']]) ? '' : Icon::create('accept', 'accept')->asImg())."</font>");
                    echo $zt->cell("<font size=\"-1\">".htmlReady($semObj->seminar_number)."</font>");
                    echo $zt->cell("<font size=\"-1\"><a href=\"dispatch.php/course/details/?sem_id=".$semObj->getId()."&send_from_search=true&send_from_search_page=".urlencode($CANONICAL_RELATIVE_PATH_STUDIP."resources.php?view=list_requests")."\">".my_substr(htmlReady($semObj->getName()),0,50)."</a><br></font>");
                    echo $zt->openCell();
                    echo "<font size=\"-1\">";
                    $k = false;
                    foreach ($semObj->getMembers('dozent') as $doz) {
                        if ($k) echo ", ";
                        echo "<a href=\"dispatch.php/profile?username={$doz['username']}\">".HtmlReady($doz['fullname'])."</a>";
                        $k = true;
                    }
                    echo "</font>";
                    $this->selectSemInstituteNames($semObj->getInstitutId());
                    if (!$this->all_semester) {
                        $semester = new SemesterData();
                        $this->all_semester = $semester->getAllSemesterData();
                    }
                    foreach ($this->all_semester as $one_sem) {
                        if ($one_sem['beginn'] == $semObj->semester_start_time) {
                            $cursem = $one_sem['name'];
                        }
                    }

                    echo $zt->closeCell();
                    echo $zt->cell("<font size=\"-1\"><a href=\"dispatch.php/profile?username="******"\">".get_fullname($reqObj->user_id)."</a></font>");
                    echo $zt->cell("<font size=\"-1\">$cursem</font>");
                    if ($license_to_kill){
                        echo $zt->cell("<font size=\"-1\"><input type=\"checkbox\" name=\"requests_marked_to_kill[]\" value=\"{$val['request_id']}\"></font>", array('align' => 'center'));
                    }
                    echo $zt->closeRow();
                }
            }
        }
        echo $zt->close();
        if ($license_to_kill){
            echo chr(10) . '</form>';
        }
    }
 /**
 * 
 */
 function toStringEdit ($post_vars = "", $faulty_values = "",
         $edit_form = "", $anker = "") {
     
     // get semester data
     $semester = new SemesterData();
     $semester_data = $semester->getAllSemesterData();
     
     $out = "";
     $table = "";
     if ($edit_form == "")
         $edit_form = new ExternEditModule($this->config, $post_vars, $faulty_values, $anker);
     
     $edit_form->setElementName($this->getName());
     $element_headline = $edit_form->editElementHeadline($this->real_name,
             $this->config->getName(), $this->config->getId(), TRUE, $anker);
     
     $headline = $edit_form->editHeadline(_("Allgemeine Angaben"));
     
     $title = _("Startsemester:");
     $info = _("Geben Sie das erste anzuzeigende Semester an. Die Angaben \"vorheriges\", \"aktuelles\" und \"nächstes\" beziehen sich immer auf das laufende Semester und werden automatisch angepasst.");
     $current_sem = get_sem_num_sem_browse();
     if ($current_sem === FALSE) {
         $names = array(_("keine Auswahl"), _("aktuelles"), _("nächstes"));
         $values = array("", "current", "next");
     }
     else if ($current_sem === TRUE) {
         $names = array(_("keine Auswahl"), _("vorheriges"), _("aktuelles"));
         $values = array("", "previous", "current");
     }
     else {
         $names = array(_("keine Auswahl"), _("vorheriges"), _("aktuelles"), "nächstes");
         $values = array("", "previous", "current", "next");
     }
     foreach ($semester_data as $sem_num => $sem) {
         $names[] = $sem["name"];
         $values[] = $sem_num + 1;
     }
     $table = $edit_form->editOptionGeneric("semstart", $title, $info, $values, $names);
     
     $title = _("Anzahl der anzuzeigenden Semester:");
     $info = _("Geben Sie an, wieviele Semester (ab o.a. Startsemester) angezeigt werden sollen.");
     $names = array(_("keine Auswahl"));
     $values = array("");
     $i = 1;
     foreach ($semester_data as $sem_num => $sem) {
         $names[] = $i++;
         $values[] = $sem_num + 1;
     }
     $table .= $edit_form->editOptionGeneric("semrange", $title, $info, $values, $names);
     
     $title = _("Umschalten des aktuellen Semesters:");
     $info = _("Geben Sie an, wieviele Wochen vor Semesterende automatisch auf das nächste Semester umgeschaltet werden soll.");
     $names = array(_("keine Auswahl"), _("am Semesterende"), _("1 Woche vor Semesterende"));
     for ($i = 2; $i < 13; $i++)
         $names[] = sprintf(_("%s Wochen vor Semesterende"), $i);
     $values = array("", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12");
     $table .= $edit_form->editOptionGeneric("semswitch", $title, $info, $values, $names);
     
     $title = _("Bezeichnung Sommersemester:");
     $info = _("Alternative Bezeichnung für den Begriff \"Sommersemester\".");
     $table .= $edit_form->editTextfieldGeneric("aliassose", $title, $info, 40, 80);
     
     $title = _("Bezeichnung Wintersemester:");
     $info = _("Alternative Bezeichnung für den Begriff \"Wintersemester\".");
     $table .= $edit_form->editTextfieldGeneric("aliaswise", $title, $info, 40, 80);
     
     $title = _("Darstellungsart:");
     $info = _("Wählen Sie zwischen Listendarstellung und reiner Textdarstellung.");
     $names = array(_("Liste"), _("nur Text"));
     $values = array("1", "0");
     $table .= $edit_form->editRadioGeneric("aslist", $title, $info, $values, $names);
     
     $title = _("Veranstaltungsklassen:");
     $info = _("Wählen Sie aus, welche Veranstaltungsklassen angezeigt werden sollen.");
     foreach ($GLOBALS['SEM_CLASS'] as $key => $lecture_class) {
         $class_names[] = $lecture_class['name'];
         $class_values[] = $key;
     }
     $table .= $edit_form->editCheckboxGeneric("semclass", $title, $info, $class_values, $class_names);
     
     $content_table .= $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     
     $submit = $edit_form->editSubmit($this->config->getName(),
             $this->config->getId(), $this->getName());
     $out = $edit_form->editContent($content_table, $submit);
     $out .= $edit_form->editBlank();
     
     return $element_headline . $out;
 }
Exemple #17
0
<body>

<? if (sizeof($dates)) : ?>
    <table cellspacing="0" cellpadding="0" border="1" width="100%">

        <tr>
            <th colspan="3">
                <h2><?php 
echo htmlReady(PageLayout::getTitle());
?>
</h2>
            </th>
        </tr>

        <?
        $semester = new SemesterData();
        $all_semester = $semester->getAllSemesterData();

        foreach ($dates as $date) :
            if ( ($grenze == 0) || ($grenze < $date['start']) ) {
                foreach ($all_semester as $zwsem) {
                    if ( ($zwsem['beginn'] < $date['start']) && ($zwsem['ende'] > $date['start']) ) {
                        $grenze = $zwsem['ende'];
                        ?>
                        <tr>
                            <td colspan="3">
                                <h3><?php 
echo htmlReady($zwsem['name']);
?>
</h3>
                            </td>
Exemple #18
0
function in_archiv ($sem_id)
{
    global $SEM_CLASS,$SEM_TYPE, $ARCHIV_PATH, $TMP_PATH, $ZIP_PATH, $ZIP_OPTIONS, $_fullname_sql;

    NotificationCenter::postNotification('CourseWillArchive', $sem_id);

    //Besorgen der Grunddaten des Seminars
    $query = "SELECT Seminar_id, Name, Untertitel, Beschreibung,
                     start_time, Institut_id, status
              FROM seminare
              WHERE Seminar_id = ?";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($sem_id));
    $row = $statement->fetch(PDO::FETCH_ASSOC);

    $seminar_id     = $row['Seminar_id'];
    $name           = $row['Name'];
    $untertitel     = $row['Untertitel'];
    $beschreibung   = $row['Beschreibung'];
    $start_time     = $row['start_time'];
    $heimat_inst_id = $row['Institut_id'];

    //Besorgen von einzelnen Daten zu dem Seminar
    $semester = new SemesterData;
    $all_semester = $semester->getAllSemesterData();
    foreach ($all_semester as $sem) {
        if (($start_time >= $sem['beginn']) && ($start_time <= $sem['ende'])) {
            $semester_tmp = $sem['name'];
        }
    }

    //Studienbereiche
    if ($SEM_CLASS[$SEM_TYPE[$row['status']]['class']]['bereiche']) {
        $sem_path = get_sem_tree_path($seminar_id);
        if (is_array($sem_path)) {
            $studienbereiche = join(', ', $sem_path);
        }
    }

    // das Heimatinstitut als erstes
    $query = "SELECT Name FROM Institute WHERE Institut_id = ?";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($heimat_inst_id));
    $institute = $statement->fetchColumn();

    // jetzt den Rest
    $query = "SELECT Name
              FROM Institute
              LEFT JOIN seminar_inst USING (institut_id)
              WHERE seminar_id = ? AND Institute.Institut_id != ?";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($seminar_id, $heimat_inst_id));
    while ($temp = $statement->fetchColumn()) {
        $institute .= ', ' . $temp;
    }

    $query = "SELECT GROUP_CONCAT({$_fullname_sql['full']} SEPARATOR ', ')
              FROM seminar_user
              LEFT JOIN auth_user_md5 USING (user_id)
              LEFT JOIN user_info USING (user_id)
              WHERE seminar_id = ? AND seminar_user.status = 'dozent'";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($seminar_id));
    $dozenten = $statement->fetchColumn();

    $query = "SELECT fakultaets_id
              FROM seminare
              LEFT JOIN Institute USING (Institut_id)
              WHERE Seminar_id = ?";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($seminar_id));
    $fakultaet_id = $statement->fetchColumn();

    $query = "SELECT GROUP_CONCAT(DISTINCT c.Name SEPARATOR ' | ')
              FROM seminar_inst AS a
              LEFT JOIN Institute AS b USING (Institut_id)
              LEFT JOIN Institute AS c ON (c.Institut_id = b.fakultaets_id)
              WHERE a.seminar_id = ?";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($seminar_id));
    $fakultaet = $statement->fetchColumn();

    setTempLanguage();  // use $DEFAULT_LANGUAGE for archiv-dumps

    //Dump holen
    $dump = dump_sem($sem_id, 'nobody');

    //Forumdump holen
    foreach (PluginEngine::getPlugins('ForumModule', $sem_id) as $plugin) {
        $forumdump .= $plugin->getDump($sem_id);
    }

    // Wikidump holen
    $wikidump = getAllWikiPages($sem_id, $name, FALSE);

    restoreLanguage();

    //OK, naechster Schritt: Kopieren der Personendaten aus seminar_user in archiv_user
    $query = "INSERT INTO archiv_user (seminar_id, user_id, status)
              SELECT Seminar_id, user_id, status FROM seminar_user WHERE Seminar_id = ?";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($seminar_id));

    // Eventuelle Vertretungen in der Veranstaltung haben weiterhin Zugriff mit Dozentenrechten
    if (get_config('DEPUTIES_ENABLE')) {
        $deputies = getDeputies($seminar_id);
        // Eintragen ins Archiv mit Zugriffsberechtigung "dozent"
        $query = "INSERT IGNORE INTO archiv_user SET seminar_id = ?, user_id = ?, status = 'dozent'";
        $statement = DBManager::get()->prepare($query);
        foreach ($deputies as $deputy) {
            $statement->execute(array($seminar_id, $deputy['user_id']));
        }
    }

    $Modules = new Modules;
    $Modules = $Modules->getLocalModules($sem_id);
    $folder_tree = TreeAbstract::GetInstance('StudipDocumentTree', array('range_id' => $sem_id,'entity_type' => 'sem'));

    if ($Modules['documents_folder_permissions'] || StudipDocumentTree::ExistsGroupFolders($sem_id)) {
        $unreadable_folders = $folder_tree->getUnReadableFolders('nobody');
    }

    $query = "SELECT COUNT(dokument_id) FROM dokumente WHERE seminar_id = ? AND url = ''";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($seminar_id));
    $count = $statement->fetchColumn();
    if ($count) {
        $hash_secret = "frauen";
        $archiv_file_id = md5(uniqid($hash_secret,1));

        //temporaeres Verzeichnis anlegen
        $tmp_full_path = "$TMP_PATH/$archiv_file_id";
        mkdir($tmp_full_path, 0700);

        if($folder_tree->getNumKids('root')) {
            $list = $folder_tree->getKids('root');
        }
        if (is_array($list) && count($list) > 0) {
            $query = "SELECT folder_id, name
                      FROM folder WHERE range_id IN (?)
                      ORDER BY name";
            $statement = DBManager::get()->prepare($query);
            $statement->execute(array($list));

            $folder = 0;
            while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
                $folder += 1;
                $temp_folder = $tmp_full_path . "/[$folder]_" . prepareFilename($row['name'], FALSE);
                mkdir($temp_folder, 0700);
                createTempFolder($row['folder_id'], $temp_folder, $seminar_id, 'nobody');
            }

            //zip all the stuff
            $archiv_full_path = "$ARCHIV_PATH/$archiv_file_id";
            create_zip_from_directory($tmp_full_path, $tmp_full_path);
            @rename($tmp_full_path . '.zip', $archiv_full_path);
        }
        rmdirr($tmp_full_path);

        if (is_array($unreadable_folders)) {
            $query = "SELECT dokument_id FROM dokumente WHERE seminar_id = ? AND url = '' AND range_id IN (?)";
            $statement = DBManager::get()->prepare($query);
            $statement->execute(array($seminar_id, $unreadable_folders));
            $archiv_protected_file_id = createSelectedZip($statement->fetchAll(PDO::FETCH_COLUMN), false, false);
            @rename("$TMP_PATH/$archiv_protected_file_id", "$ARCHIV_PATH/$archiv_protected_file_id");
        }
    } else {
        $archiv_file_id = '';
    }

    //Reinschreiben von diversem Klumpatsch in die Datenbank
    $query = "INSERT INTO archiv
                (seminar_id, name, untertitel, beschreibung, start_time,
                 semester, heimat_inst_id, institute, dozenten, fakultaet,
                 dump, archiv_file_id,archiv_protected_file_id, forumdump, wikidump, studienbereiche,
                 mkdate)
              VALUES
                (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, UNIX_TIMESTAMP())";
    $statement = DBManager::get()->prepare($query);
    $success = $statement->execute(array(
        $seminar_id,
        $name ?: '',
        $untertitel ?: '',
        $beschreibung ?: '',
        $start_time,
        $semester_tmp ?: '',
        $heimat_inst_id,
        $institute ?: '',
        $dozenten ?: '',
        $fakultaet ?: '',
        $dump ?: '',
        $archiv_file_id ?: '',
        $archiv_protected_file_id ?: '',
        $forumdump ?: '',
        $wikidump ?: '',
        $studienbereiche ?: '',
    ));
    if ($success) {
        NotificationCenter::postNotification('CourseDidArchive', $seminar_id);
    }
}
 function createResultXls()
 {
     require_once "vendor/write_excel/OLEwriter.php";
     require_once "vendor/write_excel/BIFFwriter.php";
     require_once "vendor/write_excel/Worksheet.php";
     require_once "vendor/write_excel/Workbook.php";
     global $_fullname_sql, $SEM_TYPE, $SEM_CLASS, $TMP_PATH;
     if (is_array($this->sem_browse_data['search_result']) && count($this->sem_browse_data['search_result'])) {
         if (!is_object($this->sem_tree)) {
             $the_tree = TreeAbstract::GetInstance("StudipSemTree");
         } else {
             $the_tree =& $this->sem_tree;
         }
         list($group_by_data, $sem_data) = $this->getResult();
         $tmpfile = $TMP_PATH . '/' . md5(uniqid('write_excel', 1));
         // Creating a workbook
         $workbook = new Workbook($tmpfile);
         $head_format =& $workbook->addformat();
         $head_format->set_size(12);
         $head_format->set_bold();
         $head_format->set_align("left");
         $head_format->set_align("vcenter");
         $head_format_merged =& $workbook->addformat();
         $head_format_merged->set_size(12);
         $head_format_merged->set_bold();
         $head_format_merged->set_align("left");
         $head_format_merged->set_align("vcenter");
         $head_format_merged->set_merge();
         $head_format_merged->set_text_wrap();
         $caption_format =& $workbook->addformat();
         $caption_format->set_size(10);
         $caption_format->set_align("left");
         $caption_format->set_align("vcenter");
         $caption_format->set_bold();
         //$caption_format->set_text_wrap();
         $data_format =& $workbook->addformat();
         $data_format->set_size(10);
         $data_format->set_align("left");
         $data_format->set_align("vcenter");
         $caption_format_merged =& $workbook->addformat();
         $caption_format_merged->set_size(10);
         $caption_format_merged->set_merge();
         $caption_format_merged->set_align("left");
         $caption_format_merged->set_align("vcenter");
         $caption_format_merged->set_bold();
         // Creating the first worksheet
         $worksheet1 =& $workbook->addworksheet(_("Veranstaltungen"));
         $worksheet1->set_row(0, 20);
         $worksheet1->write_string(0, 0, _("Stud.IP Veranstaltungen") . ' - ' . $GLOBALS['UNI_NAME_CLEAN'], $head_format);
         $worksheet1->set_row(1, 20);
         $worksheet1->write_string(1, 0, sprintf(_(" %s Veranstaltungen gefunden %s, Gruppierung: %s"), count($sem_data), $this->sem_browse_data['do_search'] ? _("(Suchergebnis)") : '', $this->group_by_fields[$this->sem_browse_data['group_by']]['name']), $caption_format);
         $worksheet1->write_blank(0, 1, $head_format);
         $worksheet1->write_blank(0, 2, $head_format);
         $worksheet1->write_blank(0, 3, $head_format);
         $worksheet1->write_blank(1, 1, $head_format);
         $worksheet1->write_blank(1, 2, $head_format);
         $worksheet1->write_blank(1, 3, $head_format);
         $worksheet1->set_column(0, 0, 70);
         $worksheet1->set_column(0, 1, 25);
         $worksheet1->set_column(0, 2, 25);
         $worksheet1->set_column(0, 3, 50);
         $row = 2;
         foreach ($group_by_data as $group_field => $sem_ids) {
             switch ($this->sem_browse_data["group_by"]) {
                 case 0:
                     $semester = SemesterData::GetSemesterArray();
                     $headline = $semester[$group_field]['name'];
                     break;
                 case 1:
                     if ($the_tree->tree_data[$group_field]) {
                         $headline = $the_tree->getShortPath($group_field);
                     } else {
                         $headline = _("keine Studienbereiche eingetragen");
                     }
                     break;
                 case 3:
                     $headline = $SEM_TYPE[$group_field]["name"] . " (" . $SEM_CLASS[$SEM_TYPE[$group_field]["class"]]["name"] . ")";
                     break;
                 default:
                     $headline = $group_field;
                     break;
             }
             ++$row;
             $worksheet1->write_string($row, 0, $headline, $caption_format);
             $worksheet1->write_blank($row, 1, $caption_format);
             $worksheet1->write_blank($row, 2, $caption_format);
             $worksheet1->write_blank($row, 3, $caption_format);
             ++$row;
             if (is_array($sem_ids['Seminar_id'])) {
                 $semester = SemesterData::GetSemesterArray();
                 while (list($seminar_id, ) = each($sem_ids['Seminar_id'])) {
                     $sem_name = key($sem_data[$seminar_id]["Name"]);
                     $seminar_number = key($sem_data[$seminar_id]['VeranstaltungsNummer']);
                     $sem_number_start = key($sem_data[$seminar_id]["sem_number"]);
                     $sem_number_end = key($sem_data[$seminar_id]["sem_number_end"]);
                     if ($sem_number_start != $sem_number_end) {
                         $sem_name .= ' (' . $semester[$sem_number_start]['name'] . ' - ';
                         $sem_name .= ($sem_number_end == -1 ? _("unbegrenzt") : $semester[$sem_number_end]['name']) . ')';
                     } elseif ($this->sem_browse_data['group_by']) {
                         $sem_name .= ' (' . $semester[$sem_number_start]['name'] . ")";
                     }
                     $worksheet1->write_string($row, 0, $sem_name, $data_format);
                     //create Turnus field
                     $temp_turnus_string = Seminar::GetInstance($seminar_id)->getFormattedTurnus(true);
                     //Shorten, if string too long (add link for details.php)
                     if (strlen($temp_turnus_string) > 245) {
                         $temp_turnus_string = substr($temp_turnus_string, 0, strpos(substr($temp_turnus_string, 245, strlen($temp_turnus_string)), ",") + 246);
                         $temp_turnus_string .= "...(mehr)";
                     }
                     $worksheet1->write_string($row, 1, $seminar_number, $data_format);
                     $worksheet1->write_string($row, 2, $temp_turnus_string, $data_format);
                     $doz_name = array_keys($sem_data[$seminar_id]['fullname']);
                     $doz_position = array_keys($sem_data[$seminar_id]['position']);
                     if (is_array($doz_name)) {
                         if (count($doz_position) != count($doz_name)) {
                             $doz_position = range(1, count($doz_name));
                         }
                         array_multisort($doz_position, $doz_name);
                         $worksheet1->write_string($row, 3, join(', ', $doz_name), $data_format);
                     }
                     ++$row;
                 }
             }
         }
         $workbook->close();
     }
     return $tmpfile;
 }
 /**
 * 
 */
 function toStringEdit ($post_vars = "", $faulty_values = "",
         $edit_form = "", $anker = "") {
     
     // get semester data
     $semester = new SemesterData();
     $semester_data = $semester->getAllSemesterData();
     
     update_generic_datafields($this->config, $this->data_fields, $this->field_names, "sem");
     $out = "";
     $table = "";
     if ($edit_form == "")
         $edit_form = new ExternEditModule($this->config, $post_vars, $faulty_values, $anker);
     
     $edit_form->setElementName($this->getName());
     $element_headline = $edit_form->editElementHeadline($this->real_name,
             $this->config->getName(), $this->config->getId(), TRUE, $anker);
     
     $headline = $edit_form->editHeadline(_("Name der Konfiguration"));
     $table = $edit_form->editName("name");
     $content_table = $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     
     $content_table .= $this->getSRIFormContent($edit_form);
     
     $headline = $edit_form->editHeadline(_("Allgemeine Angaben zum Tabellenaufbau"));
     
     $edit_function = $this->edit_function;
     $table = $edit_form->$edit_function($this->field_names, array(), array("sort"));
     $content_table .= $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     
     $headline = $edit_form->editHeadline(_("Allgemeine Angaben Seitenaufbau"));
     
     $title = _("Gruppierung:");
     $info = _("Wählen Sie, wie die Veranstaltungen gruppiert werden sollen.");
     $values = array("0", "1", "2", "3", "4");
     $names = array(_("Semester"), _("Bereich"), _("Lehrende"),
             _("Typ"), _("Einrichtung"));
     $table = $edit_form->editOptionGeneric("grouping", $title, $info, $values, $names);
     
     $title = _("Startsemester:");
     $info = _("Geben Sie das erste anzuzeigende Semester an. Die Angaben \"vorheriges\", \"aktuelles\" und \"nächstes\" beziehen sich immer auf das laufende Semester und werden automatisch angepasst.");
     $current_sem = get_sem_num_sem_browse();
     if ($current_sem === FALSE) {
         $names = array(_("keine Auswahl"), _("aktuelles"), _("nächstes"));
         $values = array("", "current", "next");
     }
     else if ($current_sem === TRUE) {
         $names = array(_("keine Auswahl"), _("vorheriges"), _("aktuelles"));
         $values = array("", "previous", "current");
     }
     else {
         $names = array(_("keine Auswahl"), _("vorheriges"), _("aktuelles"), "nächstes");
         $values = array("", "previous", "current", "next");
     }
     foreach ($semester_data as $sem_num => $sem) {
         $names[] = $sem["name"];
         $values[] = $sem_num + 1;
     }
     $table .= $edit_form->editOptionGeneric("semstart", $title, $info, $values, $names);
     
     $title = _("Anzahl der anzuzeigenden Semester:");
     $info = _("Geben Sie an, wieviele Semester (ab o.a. Startsemester) angezeigt werden sollen.");
     $names = array(_("keine Auswahl"));
     $values = array("");
     $i = 1;
     foreach ($semester_data as $sem_num => $sem) {
         $names[] = $i++;
         $values[] = $sem_num + 1;
     }
     $table .= $edit_form->editOptionGeneric("semrange", $title, $info, $values, $names);
     
     $title = _("Umschalten des aktuellen Semesters:");
     $info = _("Geben Sie an, wieviele Wochen vor Semesterende automatisch auf das nächste Semester umgeschaltet werden soll.");
     $names = array(_("keine Auswahl"), _("am Semesterende"), _("1 Woche vor Semesterende"));
     for ($i = 2; $i < 13; $i++)
         $names[] = sprintf(_("%s Wochen vor Semesterende"), $i);
     $values = array("", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12");
     $table .= $edit_form->editOptionGeneric("semswitch", $title, $info, $values, $names);
     
     $title = _("Veranstaltungen beteiligter Institute anzeigen:");
     $info = _("Wählen Sie diese Option, um Veranstaltungen anzuzeigen, bei denen diese Einrichtung als beteiligtes Institut eingetragen ist.");
     $values = "1";
     $names = "";
     $table .= $edit_form->editCheckboxGeneric("allseminars", $title, $info, $values, $names);
     
     $title = _("Bereichspfad ab Ebene:");
     $info = _("Wählen Sie, ab welcher Ebene der Bereichspfad ausgegeben werden soll.");
     $values = array("1", "2", "3", "4", "5");
     $names = array("1", "2", "3", "4", "5");
     $table .= $edit_form->editOptionGeneric("rangepathlevel", $title, $info, $values, $names);
     
     $title = _("Anzahl Veranstaltungen/Gruppierung anzeigen:");
     $info = _("Wählen Sie diese Option, wenn die Anzahl der Veranstaltungen und die gewählte Gruppierungsart angezeigt werden sollen.");
     $values = "1";
     $names = "";
     $table .= $edit_form->editCheckboxGeneric("addinfo", $title, $info, $values, $names);
     
     $title = _("Spaltenüberschriften<br>wiederholen:");
     $info = _("Wiederholung der Spaltenberschriften ber oder unter der Gruppierungszeile.");
     $values = array("above", "beneath", "");
     $names = array(_("über"), _("unter Gruppierungszeile"), _("keine"));
     $table .= $edit_form->editRadioGeneric("repeatheadrow", $title, $info, $values, $names);
     
     $content_table .= $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     
     $headline = $edit_form->editHeadline(_("Ausgabe bestimmter Veranstaltungsklassen"));
     
     $table = "";
     unset($names);
     unset($values);
     $info = _("Wählen Sie die anzuzeigenden Veranstaltungsklassen aus.");
     
     foreach ($GLOBALS["SEM_CLASS"] as $key => $class) {
         $values[] = $key;
         $names[] = $class["name"];
     }
     $table = $edit_form->editCheckboxGeneric("semclasses", $names, $info, $values, "");
     
     $content_table .= $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     
     $headline = $edit_form->editHeadline(_("Textersetzungen"));
     
     $title = _("Anzahl Veranstaltungen:");
     $info = _("Geben Sie einen Text ein, der nach der Anzahl der Veranstaltungen steht. Nur wirksam, wenn die Ausgabe der Anzahl der Veranstaltungen und der Gruppierung aktiviert wurde.");
     $table = $edit_form->editTextfieldGeneric("textlectures", $title, $info, 40, 150);
     
     $title = _("Gruppierungsinformation:");
     $info = _("Geben Sie einen Text ein, der vor der Gruppierungsart steht. Nur wirksam, wenn die Ausgabe der Anzahl der Veranstaltungen und der Gruppierung aktiviert wurde.");
     $table .= $edit_form->editTextfieldGeneric("textgrouping", $title, $info, 40, 150);
     
     $title = _("&quot;Keine Studienbereiche&quot;:");
     $info = _("Geben Sie einen Text ein, der Angezeigt wird, wenn Lehrveranstaltungen vorliegen, die keinem Bereich zugeordnet sind. Nur wirksam in Gruppierung nach Bereich.");
     $table .= $edit_form->editTextfieldGeneric("textnogroups", $title, $info, 40, 150);
     
     $titles = array(_("Semester"), _("Bereich"), _("Lehrende"), _("Typ"), _("Einrichtung"));
     $info = _("Geben Sie eine Bezeichnung für die entsprechende Gruppierungsart ein.");
     $table .= $edit_form->editTextfieldGeneric("aliasesgrouping", $titles, $info, 40, 150);
     
     $content_table .= $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     
     $headline = $edit_form->editHeadline(_("Weitere Angaben"));
     
     $title = _("Namensformat:");
     $info = _("Wählen Sie, wie Personennamen formatiert werden sollen.");
     $values = array("", "no_title_short", "no_title", "no_title_rev", "full", "full_rev");
     $names = array(_("keine Auswahl"), _("Meyer, P."), _("Peter Meyer"), _("Meyer Peter"),
             _("Dr. Peter Meyer"), _("Meyer, Peter, Dr."));
     $table = $edit_form->editOptionGeneric("nameformat", $title, $info, $values, $names);
     
     $title = _("Sprache:");
     $info = _("Wählen Sie eine Sprache für die Datumsangaben aus.");
     $values = array("", "de_DE", "en_GB");
     $names = array(_("keine Auswahl"), _("Deutsch"), _("Englisch"));
     $table .= $edit_form->editOptionGeneric("language", $title, $info, $values, $names);
     
     $title = _("HTML-Header/Footer:");
     $info = _("Anwählen, wenn die Seite als komplette HTML-Seite ausgegeben werden soll, z.B. bei direkter Verlinkung oder in einem Frameset.");
     $values = "1";
     $names = "";
     $table .= $edit_form->editCheckboxGeneric("wholesite", $title, $info, $values, $names);
     
     $title = _("Stylesheet-Datei:");
     $info = _("Geben Sie hier die URL Ihrer Stylesheet-Datei an.");
     $table .= $edit_form->editTextfieldGeneric("urlcss", $title, $info, 50, 200);
     
     $title = _("Seitentitel:");
     $info = _("Geben Sie hier den Titel der Seite ein. Der Titel wird bei der Anzeige im Web-Browser in der Titelzeile des Anzeigefensters angezeigt.");
     $table .= $edit_form->editTextfieldGeneric("title", $title, $info, 50, 200);
     
     $title = _("Copyright:");
     $info = _("Geben Sie hier einen Copyright-Vermerk an. Dieser wird im Meta-Tag \"copyright\" ausgegeben, wenn Sie die Option \"HTML-Header/Footer\" angewählt haben.");
     $table .= $edit_form->editTextfieldGeneric("copyright", $title, $info, 50, 200);
     
     $title = _("Autor:");
     $info = _("Geben Sie hier den Namen des Seitenautors an. Dieser wird im Meta-Tag \"author\" ausgegeben, wenn Sie die Option \"HTML-Header/Footer\" angewählt haben.");
     $table .= $edit_form->editTextfieldGeneric("author", $title, $info, 50, 200);
     
     $content_table .= $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     
     $submit = $edit_form->editSubmit($this->config->getName(),
             $this->config->getId(), $this->getName());
     $out = $edit_form->editContent($content_table, $submit);
     $out .= $edit_form->editBlank();
     
     return $element_headline . $out;
 }
Exemple #21
0
 /**
  * Seminar group administration - cluster your seminars by colors or
  * change grouping mechanism
  */
 public function groups_action($sem = null, $studygroups = false)
 {
     if ($GLOBALS['perm']->have_perm('admin')) {
         throw new AccessDeniedException();
     }
     $this->title = _('Meine Veranstaltungen') . ' - ' . _('Farbgruppierungen');
     if (Request::isXhr()) {
         $this->set_layout(null);
         $this->response->add_header('Content-Type', 'text/html;charset=Windows-1252');
         header('X-Title: ' . $this->title);
     } else {
         PageLayout::setTitle($this->title);
         PageLayout::setHelpKeyword('Basis.VeranstaltungenOrdnen');
         Navigation::activateItem('/browse/my_courses/list');
     }
     $this->current_semester = $sem ?: Semester::findCurrent()->semester_id;
     $this->semesters = SemesterData::GetSemesterArray();
     $forced_grouping = Config::get()->MY_COURSES_FORCE_GROUPING;
     if ($forced_grouping == 'not_grouped') {
         $forced_grouping = 'sem_number';
     }
     $no_grouping_allowed = $forced_grouping == 'sem_number' || !in_array($forced_grouping, getValidGroupingFields());
     $group_field = $GLOBALS['user']->cfg->MY_COURSES_GROUPING ?: $forced_grouping;
     $groups = array();
     $add_fields = '';
     $add_query = '';
     if ($group_field == 'sem_tree_id') {
         $add_fields = ', sem_tree_id';
         $add_query = "LEFT JOIN seminar_sem_tree sst ON (sst.seminar_id=seminare.Seminar_id)";
     } else {
         if ($group_field == 'dozent_id') {
             $add_fields = ', su1.user_id as dozent_id';
             $add_query = "LEFT JOIN seminar_user as su1 ON (su1.seminar_id=seminare.Seminar_id AND su1.status='dozent')";
         }
     }
     $dbv = DbView::getView('sem_tree');
     $query = "SELECT seminare.VeranstaltungsNummer AS sem_nr, seminare.Name, seminare.Seminar_id,\n                         seminare.status AS sem_status, seminar_user.gruppe, seminare.visible,\n                         {$dbv->sem_number_sql} AS sem_number,\n                         {$dbv->sem_number_end_sql} AS sem_number_end {$add_fields}\n                  FROM seminar_user\n                  JOIN semester_data sd\n                  LEFT JOIN seminare USING (Seminar_id)\n                  {$add_query}\n                  WHERE seminar_user.user_id = ?";
     if (Config::get()->MY_COURSES_ENABLE_STUDYGROUPS && !$studygroups) {
         $query .= " AND seminare.status != 99";
     }
     if ($studygroups) {
         $query .= " AND seminare.status = 99";
     }
     if (get_config('DEPUTIES_ENABLE')) {
         $query .= " UNION " . getMyDeputySeminarsQuery('gruppe', $dbv->sem_number_sql, $dbv->sem_number_end_sql, $add_fields, $add_query);
     }
     $query .= " ORDER BY sem_nr ASC";
     $statement = DBManager::get()->prepare($query);
     $statement->execute(array($GLOBALS['user']->id));
     while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
         $my_sem[$row['Seminar_id']] = array('obj_type' => 'sem', 'sem_nr' => $row['sem_nr'], 'name' => $row['Name'], 'visible' => $row['visible'], 'gruppe' => $row['gruppe'], 'sem_status' => $row['sem_status'], 'sem_number' => $row['sem_number'], 'sem_number_end' => $row['sem_number_end']);
         if ($group_field) {
             fill_groups($groups, $row[$group_field], array('seminar_id' => $row['Seminar_id'], 'sem_nr' => $row['sem_nr'], 'name' => $row['Name'], 'gruppe' => $row['gruppe']));
         }
     }
     if ($group_field == 'sem_number') {
         correct_group_sem_number($groups, $my_sem);
     } else {
         add_sem_name($my_sem);
     }
     sort_groups($group_field, $groups);
     // Ensure that a seminar is never in multiple groups
     $sem_ids = array();
     foreach ($groups as $group_id => $seminars) {
         foreach ($seminars as $index => $seminar) {
             if (in_array($seminar['seminar_id'], $sem_ids)) {
                 unset($seminars[$index]);
             } else {
                 $sem_ids[] = $seminar['seminar_id'];
             }
         }
         if (empty($seminars)) {
             unset($groups[$group_id]);
         } else {
             $groups[$group_id] = $seminars;
         }
     }
     $this->studygroups = $studygroups;
     $this->no_grouping_allowed = $no_grouping_allowed;
     $this->groups = $groups;
     $this->group_names = get_group_names($group_field, $groups);
     $this->group_field = $group_field;
     $this->my_sem = $my_sem;
 }
Exemple #22
0
    $header_template->link_params = array_fill_keys(array_keys(URLHelper::getLinkParams()), NULL);
    if (is_object($GLOBALS['user']) && $GLOBALS['user']->id != 'nobody') {
        // only mark course if user is logged in and free access enabled
        if (get_config('ENABLE_FREE_ACCESS') && Navigation::hasItem('/course') && Navigation::getItem('/course')->isActive()) {
            // indicate to the template that this course is publicly visible
            // need to handle institutes separately (always visible)
            if ($GLOBALS['SessSemName']['class'] == 'inst') {
                $header_template->public_hint = _('öffentliche Einrichtung');
            } else {
                if (Course::findCurrent()->lesezugriff == 0) {
                    $header_template->public_hint = _('öffentliche Veranstaltung');
                }
            }
        }
        if ($GLOBALS['user']->cfg->getValue('ACCESSKEY_ENABLE')) {
            $header_template->accesskey_enabled = true;
        }
        // fetch semester for quick search box in the link bar
        $semester_data = SemesterData::GetSemesterArray();
        $default_semester = $_SESSION['_default_sem'] ? SemesterData::GetSemesterIndexById($_SESSION['_default_sem']) : 'all';
        $header_template->search_semester_nr = $default_semester;
        $header_template->search_semester_name = $default_semester != 'all' ? $semester_data[$default_semester]['name'] : _("alle Semester");
    }
} else {
    $header_template = $GLOBALS['template_factory']->open('noheader');
}
echo $header_template->render();
if ($GLOBALS['SHOW_TERMS_ON_FIRST_LOGIN'] && is_object($GLOBALS['user']) && $GLOBALS['user']->id != 'nobody') {
    require_once 'lib/terms.inc.php';
    check_terms($GLOBALS['user']->id, $GLOBALS['_language_path']);
}
 function toStringEdit($post_vars = '', $faulty_values = '', $edit_form = '', $anker = '')
 {
     // get semester data
     $semester = new SemesterData();
     $semester_data = $semester->getAllSemesterData();
     update_generic_datafields($this->config, $this->data_fields, $this->field_names, "sem");
     $out = '';
     $table = '';
     if ($edit_form == '') {
         $edit_form = new ExternEditModule($this->config, $post_vars, $faulty_values, $anker);
     }
     $edit_form->setElementName($this->getName());
     $element_headline = $edit_form->editElementHeadline($this->real_name, $this->config->getName(), $this->config->getId(), TRUE, $anker);
     if ($faulty_values == '') {
         $faulty_values = array();
     }
     $headline = $edit_form->editHeadline(_("Name der Konfiguration"));
     $table = $edit_form->editName('name');
     $content_table = $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     $content_table .= $this->getSRIFormContent($edit_form, true);
     $headline = $edit_form->editHeadline(_("Konfiguration des Moduls"));
     $title = _("Anzeigemodus:");
     $info = _("Auswahl zwischen Einrichtungsbaum und Bereichsbaum");
     $values = array('show_sem_range', 'show_sem_range_tree');
     $names = array(_("Vorlesungsverzeichnis"), _("Einrichtungen"));
     $table = $edit_form->editRadioGeneric('mode', $title, $info, $values, $names);
     $title = _("Gruppierung:");
     $info = _("Wählen Sie, wie die Veranstaltungen gruppiert werden sollen.");
     $values = array('0', '1', '2', '3', '4');
     $names = array(_("Semester"), _("Bereich"), _("Lehrende"), _("Typ"), _("Einrichtung"));
     $table .= $edit_form->editOptionGeneric('grouping', $title, $info, $values, $names);
     $title = _("Startsemester:");
     $info = _("Geben Sie das erste anzuzeigende Semester an. Die Angaben \"vorheriges\", \"aktuelles\" und \"nächstes\" beziehen sich immer auf das laufende Semester und werden automatisch angepasst.");
     $current_sem = get_sem_num_sem_browse();
     if ($current_sem === FALSE) {
         $names = array(_("keine Auswahl"), _("aktuelles"), _("nächstes"));
         $values = array('', 'current', 'next');
     } else {
         if ($current_sem === TRUE) {
             $names = array(_("keine Auswahl"), _("vorheriges"), _("aktuelles"));
             $values = array('', 'previous', 'current');
         } else {
             $names = array(_("keine Auswahl"), _("vorheriges"), _("aktuelles"), "nächstes");
             $values = array('', 'previous', 'current', 'next');
         }
     }
     foreach ($semester_data as $sem_num => $sem) {
         $names[] = $sem['name'];
         $values[] = $sem_num + 1;
     }
     $table .= $edit_form->editOptionGeneric("semstart", $title, $info, $values, $names);
     /*
     $title = _("Anzahl der anzuzeigenden Semester:");
     $info = _("Geben Sie an, wieviele Semester (ab o.a. Startsemester) angezeigt werden sollen.");
     $names = array(_("keine Auswahl"));
     $values = array('');
     $i = 1;
     foreach ($semester_data as $sem_num => $sem) {
         $names[] = $i++;
         $values[] = $sem_num + 1;
     }
     $table .= $edit_form->editOptionGeneric('semrange', $title, $info, $values, $names);
     */
     $title = _("Umschalten des aktuellen Semesters:");
     $info = _("Geben Sie an, wieviele Wochen vor Semesterende automatisch auf das nächste Semester umgeschaltet werden soll.");
     $names = array(_("keine Auswahl"), _("am Semesterende"), _("1 Woche vor Semesterende"));
     for ($i = 2; $i < 13; $i++) {
         $names[] = sprintf(_("%s Wochen vor Semesterende"), $i);
     }
     $values = array('', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12');
     $table .= $edit_form->editOptionGeneric('semswitch', $title, $info, $values, $names);
     /*
     $title = _("Veranstaltungen beteiligter Institute anzeigen:");
     $info = _("Wählen Sie diese Option, um Veranstaltungen anzuzeigen, bei denen diese Einrichtung als beteiligtes Institut eingetragen ist.");
     $values = '1';
     $names = '';
     $table .= $edit_form->editCheckboxGeneric('allseminars', $title, $info, $values, $names);
     */
     $title = _("Bereichspfad ab Ebene:");
     $info = _("Wählen Sie, ab welcher Ebene der Bereichspfad ausgegeben werden soll.");
     $values = array('1', '2', '3', '4', '5', '6');
     $names = array('1', '2', '3', '4', '5', '6');
     $table .= $edit_form->editOptionGeneric('rangepathlevel', $title, $info, $values, $names);
     $title = _("Anzeige von Unterebenen:");
     $info = _("Anzahl der Unterebenen des Baumes, die angezeigt werden sollen.");
     $values = array('0', '1', '2', '3', '4', '5', '6');
     $names = array('0', '1', '2', '3', '4', '5', '6');
     $table .= $edit_form->editOptionGeneric('countshowsublevels', $title, $info, $values, $names);
     $cid = Request::option('cid');
     if ($GLOBALS['perm']->have_perm('root') && ($cid = 'studip')) {
         $title = _("Start bei Root-Ebene:");
         $info = _("Wird das Modul ohne weitere Parameter aufgerufen startet die Anzeige beim Root-Level (alle Fakultäten).");
         $table .= $edit_form->editCheckboxGeneric('startitem', $title, $info, 'root', '0');
     }
     $title = _("Leere Ebenen ausblenden:");
     $info = _("Ebenen ohne Veranstaltungen und ohne Veranstaltungen in ihren Unterebenen werden nicht angezeigt.");
     $table .= $edit_form->editCheckboxGeneric('disableemptylevels', $title, $info, '1', '0');
     $content_table .= $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     $headline = $edit_form->editHeadline(_("Konfiguration der Suche"));
     $title = _("Sortierung des Treffersets:");
     $info = _("Nach welchem Tabellenfeld soll das Trefferset sortiert werden?");
     $values = array('VeranstaltungsNummer', 'Name');
     $names = array('Veranstaltungsnummer', 'Name');
     $table = $edit_form->editOptionGeneric('resultorderby', $title, $info, $values, $names);
     $title = _("Anzahl der Treffer bei Suche:");
     $info = _("Maximale Anzahl der Veranstaltungen im Trefferset. Angabe 0, um alle anzuzeigen.");
     $table .= $edit_form->editTextfieldGeneric('maxnumberofhits', $title, $info, 3, 3);
     $title = _("Anzahl der Seiten im Result Browser:");
     $info = _("Maximale Anzahl der Seiten, die der Result Browser anzeigen soll.");
     $table .= $edit_form->editTextfieldGeneric('maxpagesresultbrowser', $title, $info, 3, 3);
     $content_table .= $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     $headline = $edit_form->editHeadline(_("Ausgabe bestimmter Veranstaltungsklassen"));
     $names = array();
     $values = array();
     $info = _("Wählen Sie die anzuzeigenden Veranstaltungsklassen aus.");
     foreach ($GLOBALS['SEM_CLASS'] as $key => $class) {
         $values[] = $key;
         $names[] = $class['name'];
     }
     $table = $edit_form->editCheckboxGeneric('semclasses', $names, $info, $values, "");
     $content_table .= $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     $headline = $edit_form->editHeadline(_("Textersetzungen"));
     $titles = array(_("Semester"), _("Bereich"), _("Lehrende"), _("Typ"), _("Einrichtung"));
     $info = _("Geben Sie eine Bezeichnung für die entsprechende Gruppierungsart ein.");
     $table = $edit_form->editTextfieldGeneric('aliasesgrouping', $titles, $info, 40, 150);
     $content_table .= $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     $headline = $edit_form->editHeadline(_("Termine"));
     $title = _("Termintypen:");
     $info = _("Wählen Sie aus, welche Termintypen angezeigt werden sollen.");
     $values = array('all', 'meeting', 'other', '');
     $names = array(_("alle Termine"), _("nur Sitzungstermine"), _("nur andere Termine"), '-----------');
     foreach ($GLOBALS['TERMIN_TYP'] as $termin_key => $termin_typ) {
         $values[] = $termin_key;
         $names[] = $termin_typ['name'] . ($termin_typ['sitzung'] ? ' (' . _("Sitzung") . ')' : '');
     }
     $table = $edit_form->editOptionGeneric('selectedeventtypes', $title, $info, $values, $names, 5, true);
     $content_table .= $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     $headline = $edit_form->editHeadline(_("Weitere Angaben"));
     $title = _("Namensformat:");
     $info = _("Wählen Sie, wie Personennamen formatiert werden sollen.");
     $values = array("", "no_title_short", "no_title", "no_title_rev", "full", "full_rev");
     $names = array(_("keine Auswahl"), _("Meyer, P."), _("Peter Meyer"), _("Meyer Peter"), _("Dr. Peter Meyer"), _("Meyer, Peter, Dr."));
     $table = $edit_form->editOptionGeneric('nameformat', $title, $info, $values, $names);
     $title = _("Sprache:");
     $info = _("Wählen Sie eine Sprache für die Datumsangaben aus.");
     $values = array("", "de_DE", "en_GB");
     $names = array(_("keine Auswahl"), _("Deutsch"), _("Englisch"));
     $table .= $edit_form->editOptionGeneric('language', $title, $info, $values, $names);
     $content_table .= $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     $submit = $edit_form->editSubmit($this->config->getName(), $this->config->getId(), $this->getName());
     $out = $edit_form->editContent($content_table, $submit);
     $out .= $edit_form->editBlank();
     return $element_headline . $out;
 }
 /**
 * 
 */
 function toStringEdit ($post_vars = "", $faulty_values = "",
         $edit_form = "", $anker = "") {
     
     // get semester data
     $semester = new SemesterData();
     $semester_data = $semester->getAllSemesterData();
     
     $out = "";
     $table = "";
     if ($edit_form == "")
         $edit_form = new ExternEditModule($this->config, $post_vars, $faulty_values, $anker);
     
     $edit_form->setElementName($this->getName());
     $element_headline = $edit_form->editElementHeadline($this->real_name,
             $this->config->getName(), $this->config->getId(), TRUE, $anker);
     
     $headline = $edit_form->editHeadline(_("Name der globalen Konfiguration"));
     $table = $edit_form->editName("name");
     
     $content_table = $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     
     $headline = $edit_form->editHeadline(_("Anzuzeigende Lehrveranstaltungen"));
     
     $title = _("Startsemester:");
     $info = _("Geben Sie das erste anzuzeigende Semester an. Die Angaben \"vorheriges\", \"aktuelles\" und \"nächstes\" beziehen sich immer auf das laufende Semester und werden automatisch angepasst.");
     $current_sem = get_sem_num_sem_browse();
     if ($current_sem === FALSE) {
         $names = array(_("keine Auswahl"), _("aktuelles"), _("nächstes"));
         $values = array("", "current", "next");
     }
     else if ($current_sem === TRUE) {
         $names = array(_("keine Auswahl"), _("vorheriges"), _("aktuelles"));
         $values = array("", "previous", "current");
     }
     else {
         $names = array(_("keine Auswahl"), _("vorheriges"), _("aktuelles"), "nächstes");
         $values = array("", "previous", "current", "next");
     }
     foreach ($semester_data as $sem_num => $sem) {
         $names[] = $sem["name"];
         $values[] = $sem_num + 1;
     }
     $table = $edit_form->editOptionGeneric("semstart", $title, $info, $values, $names);
     
     $title = _("Anzahl der anzuzeigenden Semester:");
     $info = _("Geben Sie an, wieviele Semester (ab o.a. Startsemester) angezeigt werden sollen.");
     $names = array(_("keine Auswahl"));
     $values = array("");
     $i = 1;
     foreach ($semester_data as $sem_num => $sem) {
         $names[] = $i++;
         $values[] = $sem_num + 1;
     }
     $table .= $edit_form->editOptionGeneric("semrange", $title, $info, $values, $names);
     
     $title = _("Umschalten des aktuellen Semesters:");
     $info = _("Geben Sie an, wieviele Wochen vor Semesterende automatisch auf das nächste Semester umgeschaltet werden soll.");
     $names = array(_("keine Auswahl"), _("am Semesterende"), _("1 Woche vor Semesterende"));
     for ($i = 2; $i < 13; $i++)
         $names[] = sprintf(_("%s Wochen vor Semesterende"), $i);
     $values = array("", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12");
     $table .= $edit_form->editOptionGeneric("semswitch", $title, $info, $values, $names);
     
     $content_table .= $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     
     $headline = $edit_form->editHeadline(_("Weitere Angaben"));
     
     $title = _("Namensformat:");
     $info = _("Wählen Sie, wie Personennamen formatiert werden sollen.");
     $values = array("", "no_title_short", "no_title", "no_title_rev", "full", "full_rev");
     $names = array(_("keine Auswahl"), _("Meyer, P."), _("Peter Meyer"), _("Meyer Peter"),
             _("Dr. Peter Meyer"), _("Meyer, Peter, Dr."));
     $table = $edit_form->editOptionGeneric("nameformat", $title, $info, $values, $names);
     
     $title = _("Sprache:");
     $info = _("Wählen Sie eine Sprache für die Datumsangaben aus.");
     $values = array("", "de_DE", "en_GB");
     $names = array(_("keine Auswahl"), _("Deutsch"), _("Englisch"));
     $table .= $edit_form->editOptionGeneric("language", $title, $info, $values, $names);
     
     $title = _("Standard-Adresse:");
     $info = _("Wenn Sie diese Option wählen, wird die Standard-Adresse ausgegeben, die jede(r) Mitarbeiter(in) bei seinen universitären Daten auswählen kann. Wählen Sie diese Option nicht, wenn immer die Adresse der Einrichtung ausgegeben werden soll.");
     $table .= $edit_form->editCheckboxGeneric('defaultadr', $title, $info, '1', '0');
     
     $title = _("HTML-Header/Footer:");
     $info = _("Anwählen, wenn die Seite als komplette HTML-Seite ausgegeben werden soll, z.B. bei direkter Verlinkung oder in einem Frameset.");
     $values = "1";
     $names = "";
     $table .= $edit_form->editCheckboxGeneric("wholesite", $title, $info, $values, $names);
     
     $title = _("Stylesheet-Datei:");
     $info = _("Geben Sie hier die URL Ihrer Stylesheet-Datei an.");
     $table .= $edit_form->editTextfieldGeneric("urlcss", $title, $info, 50, 200);
     
     $title = _("Copyright:");
     $info = _("Geben Sie hier einen Copyright-Vermerk an. Dieser wird im Meta-Tag \"copyright\" ausgegeben, wenn Sie die Option \"HTML-Header/Footer\" angewählt haben.");
     $table .= $edit_form->editTextfieldGeneric("copyright", $title, $info, 50, 200);
     
     $title = _("Autor:");
     $info = _("Geben Sie hier den Namen des Seitenautors an. Dieser wird im Meta-Tag \"author\" ausgegeben, wenn Sie die Option \"HTML-Header/Footer\" angewählt haben.");
     $table .= $edit_form->editTextfieldGeneric("author", $title, $info, 50, 200);
     
     $content_table .= $edit_form->editContentTable($headline, $table);
     $content_table .= $edit_form->editBlankContent();
     
     $submit = $edit_form->editSubmit($this->config->getName(),
             $this->config->getId(), $this->getName());
     $out = $edit_form->editContent($content_table, $submit);
     $out .= $edit_form->editBlank();
     
     return $element_headline . $out;
 }
Exemple #25
0
$group_by = Request::int('group_by', 0);
// store the seleced semester in the session
if (Request::option('select_sem')) {
    $_SESSION['_default_sem'] = Request::option('select_sem');
}
$show_semester = Request::option('select_sem', $_SESSION['_default_sem']);
$sem_browse_obj = new SemBrowse(array('group_by' => 0));
$sem_browse_obj->sem_browse_data['default_sem'] = "all";
$sem_browse_obj->sem_number = false;
$sem_browse_obj->target_url = "dispatch.php/course/details/";
//teilt der nachfolgenden Include mit, wo sie die Leute hinschicken soll
$sem_browse_obj->target_id = "sem_id";
//teilt der nachfolgenden Include mit, wie die id die übergeben wird, bezeichnet werden soll
$sem_browse_obj->sem_browse_data['level'] = $level;
if ($show_semester) {
    $sem_number = SemesterData::GetSemesterIndexById($show_semester);
    $sem_browse_obj->sem_browse_data['default_sem'] = $sem_number;
    $sem_browse_obj->sem_number[0] = $sem_number;
}
switch ($level) {
    case "sbb":
        $sem_browse_obj->sem_browse_data['start_item_id'] = $id;
        $sem_browse_obj->get_sem_range($id, false);
        $sem_browse_obj->show_result = true;
        $sem_browse_obj->sem_browse_data['sset'] = false;
        $the_tree = $sem_browse_obj->sem_tree->tree;
        $bereich_typ = _("Studienbereich");
        $head_text = _("Übersicht aller Veranstaltungen eines Studienbereichs");
        $intro_text = sprintf(_("Alle Veranstaltungen, die dem Studienbereich: <br><b>%s</b><br> zugeordnet wurden."), htmlReady($the_tree->getShortPath($id)));
        $excel_text = strip_tags(DecodeHtml($intro_text));
        break;
Exemple #26
0
 /**
  * creates a new studygroup with respect to given form data
  *
  * Triggers a StudygroupDidCreate notification using the ID of the
  * new studygroup as subject.
  *
  * @return void
  */
 function create_action()
 {
     global $perm;
     $admin = $perm->have_perm('admin');
     $errors = array();
     CSRFProtection::verifyUnsafeRequest();
     foreach ($GLOBALS['SEM_CLASS'] as $key => $class) {
         if ($class['studygroup_mode']) {
             $sem_class = $class;
             break;
         }
     }
     if (Request::getArray('founders')) {
         $founders = Request::optionArray('founders');
         $this->flash['founders'] = $founders;
     }
     // search for founder
     if ($admin && Request::submitted('search_founder')) {
         $search_for_founder = Request::get('search_for_founder');
         // do not allow to search with the empty string
         if ($search_for_founder) {
             // search for the user
             $query = "SELECT user_id, {$GLOBALS['_fullname_sql']['full_rev']} AS fullname, username, perms\n                          FROM auth_user_md5\n                          LEFT JOIN user_info USING (user_id)\n                          WHERE perms NOT IN ('root', 'admin')\n                            AND (username LIKE CONCAT('%', :needle, '%')\n                              OR Vorname LIKE CONCAT('%', :needle, '%')\n                              OR Nachname LIKE CONCAT('%', :needle, '%'))\n                          LIMIT 500";
             $statement = DBManager::get()->prepare($query);
             $statement->bindValue(':needle', $search_for_founder);
             $statement->execute();
             $results_founders = $statement->fetchGrouped(PDO::FETCH_ASSOC);
         }
         if (is_array($results_founders)) {
             $this->flash['success'] = sizeof($results_founders) == 1 ? sprintf(_("Es wurde %s Person gefunden:"), sizeof($results_founders)) : sprintf(_("Es wurden %s Personen gefunden:"), sizeof($results_founders));
         } else {
             $this->flash['info'] = _("Es wurden kein Personen gefunden.");
         }
         $this->flash['create'] = true;
         $this->flash['results_choose_founders'] = $results_founders;
         $this->flash['request'] = Request::getInstance();
         // go to the form again
         $this->redirect('course/studygroup/new/');
     } else {
         if ($admin && Request::submitted('add_founder')) {
             $founders = array(Request::option('choose_founder'));
             $this->flash['founders'] = $founders;
             $this->flash['create'] = true;
             $this->flash['request'] = Request::getInstance();
             $this->redirect('course/studygroup/new/');
         } else {
             if ($admin && Request::submitted('remove_founder')) {
                 unset($founders);
                 $this->flash['founders'] = $founders;
                 $this->flash['create'] = true;
                 $this->flash['request'] = Request::getInstance();
                 $this->redirect('course/studygroup/new/');
             } else {
                 if ($admin && Request::submitted('new_search')) {
                     $this->flash['create'] = true;
                     $this->flash['request'] = Request::getInstance();
                     $this->redirect('course/studygroup/new/');
                 } else {
                     if (!Request::get('groupname')) {
                         $errors[] = _("Bitte Gruppennamen angeben");
                     } else {
                         $query = "SELECT 1 FROM seminare WHERE name = ?";
                         $statement = DBManager::get()->prepare($query);
                         $statement->execute(array(Request::get('groupname')));
                         if ($statement->fetchColumn()) {
                             $errors[] = _("Eine Veranstaltung/Studiengruppe mit diesem Namen existiert bereits. Bitte wählen Sie einen anderen Namen");
                         }
                     }
                     if (!Request::get('grouptermsofuse_ok')) {
                         $errors[] = _("Sie müssen die Nutzungsbedingungen durch Setzen des Häkchens bei 'Einverstanden' akzeptieren.");
                     }
                     if ($admin && (!is_array($founders) || !sizeof($founders))) {
                         $errors[] = _("Sie müssen mindestens einen Gruppengründer eintragen!");
                     }
                     if (count($errors)) {
                         $this->flash['errors'] = $errors;
                         $this->flash['create'] = true;
                         $this->flash['request'] = Request::getInstance();
                         $this->redirect('course/studygroup/new/');
                     } else {
                         // Everything seems fine, let's create a studygroup
                         $sem_types = studygroup_sem_types();
                         $sem = new Seminar();
                         $sem->name = Request::get('groupname');
                         // seminar-class quotes itself
                         $sem->description = Request::get('groupdescription');
                         // seminar-class quotes itself
                         $sem->status = $sem_types[0];
                         $sem->read_level = 1;
                         $sem->write_level = 1;
                         $sem->institut_id = Config::Get()->STUDYGROUP_DEFAULT_INST;
                         $mods = new Modules();
                         $bitmask = 0;
                         $sem->visible = 1;
                         if (Request::get('groupaccess') == 'all') {
                             $sem->admission_prelim = 0;
                         } else {
                             $sem->admission_prelim = 1;
                             if (Config::get()->STUDYGROUPS_INVISIBLE_ALLOWED && Request::get('groupaccess') == 'invisible') {
                                 $sem->visible = 0;
                             }
                             $sem->admission_prelim_txt = _("Die ModeratorInnen der Studiengruppe können Ihren Aufnahmewunsch bestätigen oder ablehnen. Erst nach Bestätigung erhalten Sie vollen Zugriff auf die Gruppe.");
                         }
                         $sem->admission_binding = 0;
                         $semdata = new SemesterData();
                         $this_semester = $semdata->getSemesterDataByDate(time());
                         $sem->semester_start_time = $this_semester['beginn'];
                         $sem->semester_duration_time = -1;
                         if ($admin) {
                             // insert founder(s)
                             foreach ($founders as $user_id) {
                                 $stmt = DBManager::get()->prepare("INSERT INTO seminar_user\n                            (seminar_id, user_id, status, gruppe)\n                            VALUES (?, ?, 'dozent', 8)");
                                 $stmt->execute(array($sem->id, $user_id));
                             }
                             $this->founders = null;
                             $this->flash['founders'] = null;
                         } else {
                             $user_id = $GLOBALS['auth']->auth['uid'];
                             // insert dozent
                             $query = "INSERT INTO seminar_user (seminar_id, user_id, status, gruppe)\n                              VALUES (?, ?, 'dozent', 8)";
                             $statement = DBManager::get()->prepare($query);
                             $statement->execute(array($sem->id, $user_id));
                         }
                         // de-/activate modules
                         $mods = new Modules();
                         $admin_mods = new AdminModules();
                         $bitmask = 0;
                         $available_modules = StudygroupModel::getInstalledModules();
                         $active_plugins = Request::getArray('groupplugin');
                         foreach ($available_modules as $key => $enable) {
                             $module_name = $sem_class->getSlotModule($key);
                             if ($module_name && ($sem_class->isModuleMandatory($module_name) || !$sem_class->isModuleAllowed($module_name))) {
                                 continue;
                             }
                             if (!$module_name) {
                                 $module_name = $key;
                             }
                             if ($active_plugins[$module_name]) {
                                 // activate modules
                                 $mods->setBit($bitmask, $mods->registered_modules[$key]["id"]);
                                 $methodActivate = "module" . ucfirst($key) . "Activate";
                                 if (method_exists($admin_mods, $methodActivate)) {
                                     $admin_mods->{$methodActivate}($sem->id);
                                 }
                             }
                         }
                         // always activate participants list
                         $mods->setBit($bitmask, $mods->registered_modules["participants"]["id"]);
                         $sem->modules = $bitmask;
                         $sem->store();
                         // de-/activate plugins
                         $available_plugins = StudygroupModel::getInstalledPlugins();
                         $plugin_manager = PluginManager::getInstance();
                         foreach ($available_plugins as $key => $name) {
                             if (!$sem_class->isModuleAllowed($key)) {
                                 continue;
                             }
                             $plugin = $plugin_manager->getPlugin($key);
                             $plugin_id = $plugin->getPluginId();
                             if ($active_plugins[$key] && $name) {
                                 $plugin_manager->setPluginActivated($plugin_id, $sem->id, true);
                             } else {
                                 $plugin_manager->setPluginActivated($plugin_id, $sem->id, false);
                             }
                         }
                         NotificationCenter::postNotification('StudygroupDidCreate', $sem->id);
                         // the work is done. let's visit the brand new studygroup.
                         $this->redirect(URLHelper::getURL('seminar_main.php?auswahl=' . $sem->id));
                     }
                 }
             }
         }
     }
 }
Exemple #27
0
    $export_pagecontent .= " selected";
$export_pagecontent .= " value=\"veranstaltung\">" . _("Veranstaltungsdaten") .  "</option>";

$export_pagecontent .= "<option";
if ($ex_type=="person") {
    $export_pagecontent .= " selected";
}
$export_pagecontent .= " value=\"person\">" . _("MitarbeiterInnendaten") .  "</option>";

$export_pagecontent .= "</select><br><br><br><br>";

$export_pagecontent .="<b>". _("Aus welchem Semester sollen die Daten exportiert werden (für Veranstaltungsexport): ") .  "</b><br>";
if (!isset($ex_sem)) {
    $ex_sem = (Semester::findCurrent() ? Semester::findCurrent()->getId() : null);
}
$export_pagecontent .= SemesterData::GetSemesterSelector(array('name' => 'ex_sem'), $ex_sem, 'semester_id', true);
$export_pagecontent .= "<br><br>";

$export_pagecontent .="<b>". _("Welche Arten von Veranstaltungen sollen exportiert werden? ") .  "</b><br>";

if (!count($ex_sem_class)) {
    $ex_sem_class[1] = 1;
}

foreach (SeminarCategories::getAll() as $sem_class) {
    if(!$sem_class->studygroup_mode){
        $export_pagecontent .= "<input type=\"checkbox\" name=\"ex_sem_class[$sem_class->id]\" value=\"1\"";
        if (isset($ex_sem_class[$sem_class->id])) $export_pagecontent .= " checked";
        $export_pagecontent .= ">&nbsp;" . htmlready($sem_class->name) . "&nbsp;&nbsp;";
    }
}
Exemple #28
0
        </select>
    </div>
    <div style="font-weight:bold">
        <?php 
echo _("Präfix des Veranstaltungsnamens / Nummer:");
?>
    </div>
    <div>
        <input type="text" name="sem_name_prefix" value="<?php 
echo htmlReady($sem_name_prefix);
?>
" size="40">
    </div>
    <div style="font-weight:bold">
        <?php 
echo _("Veranstaltungen aus diesem Semester:");
?>
 
    </div>
    <div>
        <?php 
echo SemesterData::GetSemesterSelector(array('name' => 'select_semester_id'), $current_semester_id, 'semester_id', false);
?>
    </div>
    <div>
        <?php 
echo Studip\Button::create(_('Auswählen'), 'choose_institut', array('title' => _("Einrichtung auswählen")));
?>
    </div>
</form>
Exemple #29
0
 private function findAllSemesters()
 {
     return $this->filterSemesters(\SemesterData::GetSemesterArray());
 }
/**
 *
 * @param unknown_type $my_obj
 */
function add_sem_name(&$my_obj)
{
    if ($GLOBALS['user']->cfg->getValue('SHOWSEM_ENABLE')) {
        $sem_data = SemesterData::GetSemesterArray();
        if (is_array($my_obj)) {
            foreach ($my_obj as $seminar_id => $values) {
                if ($values['obj_type'] == 'sem' && $values['sem_number'] != $values['sem_number_end']) {
                    $sem_name = " (" . $sem_data[$values['sem_number']]['name'] . " - ";
                    $sem_name .= ($values['sem_number_end'] == -1 ? _("unbegrenzt") : $sem_data[$values['sem_number_end']]['name']) . ")";
                    $my_obj[$seminar_id]['name'] .= $sem_name;
                } else {
                    $my_obj[$seminar_id]['name'] .= " (" . $sem_data[$values['sem_number']]['name'] . ") ";
                }
            }
        }
    }
    return true;
}