Exemple #1
0
 function login()
 {
     $this->data['title'] = "Login";
     //validate form input
     $this->form_validation->set_rules('identity', 'Identity', 'required');
     $this->form_validation->set_rules('password', 'Password', 'required');
     if ($this->form_validation->run() == true) {
         //check to see if the user is logging in
         //check for "remember me"
         $remember = (bool) $this->input->post('remember');
         if ($this->ion_auth->login($this->input->post('identity'), $this->input->post('password'), $remember)) {
             $sem = get_semester();
             if ($sem) {
                 $status = update_semester($sem);
             }
             //if the login is successful
             //redirect them back to the home page
             $this->session->set_flashdata('message', $this->ion_auth->messages());
             if ($this->session->userdata('redirect_url') != "") {
                 $redirect_url = $this->session->userdata('redirect_url');
                 $this->session->unset_userdata('redirect_url');
                 redirect($redirect_url);
             } else {
                 redirect('/', 'refresh');
             }
         } else {
             //if the login was un-successful
             //redirect them back to the login page
             $this->session->set_flashdata('message', $this->ion_auth->errors());
             redirect('auth/login', 'refresh');
             //use redirects instead of loading views for compatibility with MY_Controller libraries
         }
     } else {
         //the user is not logging in so display the login page
         //set the flash data error message if there is one
         $this->data['message'] = validation_errors() ? validation_errors() : $this->session->flashdata('message');
         $this->data['identity'] = array('name' => 'identity', 'id' => 'identity', 'type' => 'text', 'value' => $this->form_validation->set_value('identity'), 'style' => 'padding:4px; height:38px; margin-bottom: 3px;', 'class' => 'span3 span3custom', 'placeholder' => 'Pengguna');
         $this->data['password'] = array('name' => 'password', 'id' => 'password', 'type' => 'password', 'style' => 'padding:4px; height:38px;', 'class' => 'span2', 'placeholder' => 'Kata Laluan');
         $this->_render_page('auth/login', $this->data);
     }
 }
 function getSemesterinfo()
 {
     if ($this->sem_id) {
         return get_semester($this->sem_id);
     }
     return false;
 }
Exemple #3
0
             // Grunddaten des Seminars
             printf("<b>" . _("Untertitel:") . "</b><br>%s", htmlReady($seminar['Untertitel']));
             ?>
         </td>
     </tr>
 <? }
 ?>
 <tr>
     <td style="vertical-align: top">
         <?
         printf("<b>" . _("Zeit:") . "</b><br>%s", htmlReady(view_turnus($_SESSION['archiv_assi_data']['sems'][$_SESSION['archiv_assi_data']['pos']]['id'], FALSE)));
         ?>
     </td>
     <td style="vertical-align: top">
         <?
         printf("<b>" . _("Semester:") . "</b><br>%s", get_semester($_SESSION['archiv_assi_data']['sems'][$_SESSION['archiv_assi_data']['pos']]['id']));
         ?>
     </td>
 </tr>
 <tr>
     <td style="vertical-align: top">
         <?
         printf("<b>" . _("Erster Termin:") . "</b><br>%s", veranstaltung_beginn($_SESSION['archiv_assi_data']["sems"][$_SESSION['archiv_assi_data']["pos"]]["id"]));
         ?>
     </td>
     <td style="vertical-align: top">
         <?
         printf("<b>" . _("Vorbesprechung:") . "</b><br>%s", (vorbesprechung($_SESSION['archiv_assi_data']["sems"][$_SESSION['archiv_assi_data']["pos"]]["id"])) ? htmlReady(vorbesprechung($_SESSION['archiv_assi_data']["sems"][$_SESSION['archiv_assi_data']["pos"]]["id"])) : _("keine"));
         ?>
     </td>
 </tr>
Exemple #4
0
function dump_sem($sem_id, $print_view = false)
{
    global $TERMIN_TYP, $SEM_TYPE, $SEM_CLASS, $_fullname_sql, $AUTO_INSERT_SEM;

    $Modules = new Modules;
    $Modules = $Modules->getLocalModules($sem_id);

    $query = "SELECT status, Name, Untertitel, art, VeranstaltungsNummer,
                     ects, Beschreibung, teilnehmer, vorrausetzungen,
                     lernorga, leistungsnachweis, Sonstiges, Institut_id,
                     admission_turnout
              FROM seminare
              WHERE Seminar_id = ?";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($sem_id));
    $seminar = $statement->fetch(PDO::FETCH_ASSOC);

    $sem_type = $seminar['status'];

    $sem = Seminar::getInstance($sem_id);

    $dump  = '<table width="100%" border="1" cellpadding="2" cellspacing="0">';
    $dump .= '<tr><td colspan="2" align="left" class="table_header_bold">';
    $dump .= '<h1 class="table_header_bold">&nbsp;' . htmlReady($seminar['Name'], 1, 1) . '</h1>';
    $dump .= '</td></tr>' . "\n";

    // Helper function that dumps into a single table row
    $dumpRow = function ($title, $content, $escape = false) use (&$dump) {
        $content = trim($content);
        if ($content) {
            if ($escape) {
                $content = htmlReady($content, 1, 1);
            }
            $dump .= sprintf('<tr><td width="15%%"><b>%s</b></td><td>%s</td></tr>' . "\n",
                             htmlReady($title), $content);
        }
    };

    //Grunddaten des Seminars, wie in den seminar_main
    $dumpRow(_('Untertitel:'), $seminar['Untertitel'], true);

    if ($data = $sem->getDatesExport()) {
        $dumpRow(_('Zeit:'), nl2br($data));
    }

    $dumpRow(_('Semester:'), get_semester($sem_id));
    $dumpRow(_('Erster Termin:'), veranstaltung_beginn($sem_id, 'export'));

    if ($temp = vorbesprechung($sem_id, 'export')) {
        $dumpRow(_('Vorbesprechung:'), htmlReady($temp));
    }

    if ($data = $sem->getDatesTemplate('dates/seminar_export_location')) {
        $dumpRow(_('Ort:'), nl2br($data));
    }

    //wer macht den Dozenten?
    $query = "SELECT {$_fullname_sql['full']} AS fullname
              FROM seminar_user
              LEFT JOIN auth_user_md5 USING (user_id)
              LEFT JOIN user_info USING (user_id)
              WHERE Seminar_id = ? AND status = 'dozent'
              ORDER BY position, Nachname";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($sem_id));
    $teachers = $statement->fetchAll(PDO::FETCH_COLUMN);
    if (count($teachers) > 0) {
        $title = get_title_for_status('dozent', count($teachers), $sem_type);
        $dumpRow($title, implode('<br>', array_map('htmlReady', $teachers)));
    }

    //und wer ist Tutor?
    $query = "SELECT {$_fullname_sql['full']} AS fullname
              FROM seminar_user
              LEFT JOIN auth_user_md5 USING (user_id)
              LEFT JOIN user_info USING (user_id)
              WHERE Seminar_id = ? AND status = 'tutor'
              ORDER BY position, Nachname";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($sem_id));
    $tutors = $statement->fetchAll(PDO::FETCH_COLUMN);
    if (count($tutors) > 0) {
        $title = get_title_for_status('tutor', count($tutors), $sem_type);
        $dumpRow($title, implode('<br>', array_map('htmlReady', $tutors)));
    }

    if ($seminar['status'] != '' && isset($SEM_TYPE[$seminar['status']])) {
        $content  = $SEM_TYPE[$seminar['status']]['name'];
        $content .= ' ' . _('in der Kategorie') . ' ';
        $content .= '<b>' . $SEM_CLASS[$SEM_TYPE[$seminar['status']]['class']]['name'] . '</b>';
        $dumpRow(_('Typ der Veranstaltung'), $content);
    }

    $dumpRow(_('Art der Veranstaltung:'), $seminar['art'], true);
    $dumpRow(_('VeranstaltungsNummer:'), htmlReady($seminar['VeranstaltungsNummer']));
    $dumpRow(_('ECTS-Punkte:'), htmlReady($seminar['ects']));
    $dumpRow(_('Beschreibung:'), $seminar['Beschreibung'], true);
    $dumpRow(_('Teilnehmende:'), $seminar['teilnehmende'], true);
    $dumpRow(_('Voraussetzungen:'), $seminar['vorrausetzungen'], true);
    $dumpRow(_('Lernorganisation:'), $seminar['lernorga'], true);
    $dumpRow(_('Leistungsnachweis:'), $seminar['leistungsnachweis'], true);

    //add the free adminstrable datafields
    $localEntries = DataFieldEntry::getDataFieldEntries($sem_id);
    foreach ($localEntries as $entry) {
        $dumpRow($entry->getName(), $entry->getDisplayValue());
    }

    $dumpRow(_('Sonstiges:'), $seminar['Sonstiges'], true);

    // Fakultaeten...
    $query = "SELECT DISTINCT c.Name
              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($sem_id));
    $faculties = $statement->fetchAll(PDO::FETCH_COLUMN);
    if (count($faculties) > 0) {
        $dumpRow(_('Fakultät(en):'), implode('<br>', array_map('htmlReady', $faculties)));
    }

    //Studienbereiche
    if (isset($SEM_TYPE[$seminar['status']]) && $SEM_CLASS[$SEM_TYPE[$seminar['status']]['class']]['bereiche']) {
        $sem_path = get_sem_tree_path($sem_id) ?: array();
        $dumpRow(_('Studienbereiche') . ':', implode('<br>', array_map('htmlReady', $sem_path)));
    }

    $iid = $seminar['Institut_id'];
    $query = "SELECT Name FROM Institute WHERE Institut_id = ?";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($iid));
    $inst_name = $statement->fetchColumn();
    $dumpRow(_('Heimat-Einrichtung:'), $inst_name, true);

    $query = "SELECT Name
              FROM seminar_inst
              LEFT JOIN Institute USING (institut_id)
              WHERE seminar_id = ? AND Institute.institut_id != ?";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($sem_id, $iid));
    $other_institutes = $statement->fetchAll(PDO::FETCH_COLUMN);
    if (count($other_institutes) > 0) {
        $title = (count($other_institutes) == 1)
               ? _('Beteiligte Einrichtung:')
               : _('Beteiligte Einrichtungen:');
        $dumpRow($title, implode(', ', array_map('htmlReady', $other_institutes)));
    }

    //Teilnehmeranzahl
    $dumpRow(_('max. Personenanzahl:'), $seminar['admission_turnout']);

    //Statistikfunktionen
    $query = "SELECT COUNT(*) FROM seminar_user WHERE Seminar_id = ?";
    $statement = DBManager::get()->prepare($query);
    $statement->execute(array($sem_id));
    $count = $statement->fetchColumn();
    $dumpRow(_('Anzahl der angemeldeten Personen:'), $count);

    // number of postings for all forum-modules in this seminar
    $count = 0;
    $forum_modules = PluginEngine::getPlugins('ForumModule', $sem_id);
    foreach ($forum_modules as $plugin) {
        $count += $plugin->getNumberOfPostingsForSeminar($sem_id);
    }
    $dumpRow(_('Forenbeiträge:'), $count);

    if ($Modules['documents']) {
        //do not show hidden documents
        $unreadable_folders = array();
        if ($print_view) {
            $check_user = $print_view === true ? $GLOBALS['user']->id : $print_view;
            if ($Modules['documents_folder_permissions'] || StudipDocumentTree::ExistsGroupFolders($sem_id)) {
                if (!$GLOBALS['perm']->have_studip_perm('tutor', $sem_id, $check_user)) {
                    $folder_tree = TreeAbstract::GetInstance('StudipDocumentTree', array('range_id' => $sem_id,'entity_type' => 'sem'));
                    $unreadable_folders = $folder_tree->getUnReadableFolders($check_user);
                }
            }
        }
        $query = "SELECT COUNT(*) FROM dokumente WHERE seminar_id = ?";
        $parameters = array($sem_id);

        if (count($unreadable_folders) > 0) {
            $query .= " AND range_id NOT IN(?)";
            $parameters[] = $unreadable_folders;
        }
        $statement = DBManager::get()->prepare($query);
        $statement->execute($parameters);
        $docs = $statement->fetchColumn();
    }
    $dumpRow(_('Dokumente:'), $docs ?: 0);

    $dump.= '</table>' . "\n";

    // Ablaufplan
    if ($Modules['schedule']) {
        $dump.= dumpRegularDatesSchedule($sem_id);
        $dump.= dumpExtraDatesSchedule($sem_id);
    }

    //SCM
    if ($Modules['scm']) {
        foreach(StudipScmEntry::findByRange_id($sem_id, 'ORDER BY position ASC') as $scm) {
            if (!empty($scm->content)) {
                $dump .= '<br>';
                $dump .= '<table width="100%" border="1" cellpadding="2" cellspacing="0">';
                $dump .= ' <tr><td align="left" class="table_header_bold">';
                $dump .= '<h2 class="table_header_bold">&nbsp;' . htmlReady($scm->tab_name) . '</h2>';
                $dump .= '</td></tr>' . "\n";
                $dump .= '<tr><td align="left" width="100%"><br>'. formatReady($scm->content, 1, 1) .'<br></td></tr>' . "\n";
                $dump .= '</table>' . "\n";
            }
        }
    }

    if ($Modules['literature']) {
        $lit = StudipLitList::GetFormattedListsByRange($sem_id, false, false);
        if ($lit) {
            $dump .= '<br>';
            $dump .= '<table width="100%" border="1" cellpadding="2" cellspacing="0">';
            $dump .= '<tr><td align="left" class="table_header_bold">';
            $dump .= '<h2 class="table_header_bold">&nbsp;' . _('Literaturlisten') . '</h2>';
            $dump .= '</td></tr>' . "\n";
            $dump .= '<tr><td align="left" width="100%"><br>'. $lit .'<br></td></tr>' . "\n";
            $dump .= '</table>' . "\n";
        }
    }

    // Dateien anzeigen
    if ($Modules['documents']) {

        $link_text = _('Hinweis: Diese Datei wurde nicht archiviert, da sie lediglich verlinkt wurde.');
        $query = "SELECT name, filename, mkdate, filesize, Nachname AS nachname,
                         IF(url != '', CONCAT('{$link_text}', ' / ', description), description) AS description
                  FROM dokumente
                  LEFT JOIN auth_user_md5 USING (user_id)
                  WHERE seminar_id = ?";
        $parameters = array($sem_id);

        if (count($unreadable_folders) > 0) {
            $query .= " AND range_id NOT IN (?)";
            $parameters[] = $unreadable_folders;
        }

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

        if (count($dbresult) > 0) {
            $dump .= '<br>';
            $dump .= '<table width="100%" border="1" cellpadding="2" cellspacing="0">';
            $dump .= '<tr><td align="left" colspan="3" class="table_header_bold">';
            $dump .= '<h2 class="table_header_bold">&nbsp;' . _('Dateien:') . '</h2>';
            $dump .= '</td></tr>' . "\n";

            foreach ($dbresult as $row) {
                $name = ($row['name'] && $row['name'] != $row['filename'])
                      ? $row['name'] . ' (' . $row['filename'] . ')'
                      : $row['filename'];
                $dump .= sprintf('<tr><td width="100%%"><b>%s</b><br>%s (%u KB)</td><td>%s</td><td>%s</td></tr>' . "\n",
                                 htmlReady($name),
                                 htmlReady($row['description']),
                                 round($row['filesize'] / 1024),
                                 htmlReady($row['nachname']),
                                 date('d.m.Y', $row['mkdate']));
            }

            $dump .= '</table>' . "\n";
        }
    }

    // Teilnehmer
    if ($Modules['participants']
        && (Config::get()->AUTO_INSERT_SEM_PARTICIPANTS_VIEW_PERM || !in_array($sem_id, AutoInsert::getAllSeminars(true))))
    {
        $dump .= '<br>';

        // Prepare statement that obtains the number of document a specific
        // user has uploaded into a specific seminar
        $documents_params = array($sem_id, null);
        $query = "SELECT COUNT(*) FROM dokumente WHERE Seminar_id = ? AND user_id = ?";
        if (count($unreadable_folders) > 0) {
            $query .= " AND range_id NOT IN (?)";
            $documents_params[] = $unreadable_folders;

        }
        $documents_statement = DBManager::get()->prepare($query);
        // Prepare statement that obtains all participants of a specific
        // seminar with a specific status
        $ext_vis_query = get_ext_vis_query('seminar_user');
        $query = "SELECT user_id, {$_fullname_sql['full']} AS fullname,
                         {$ext_vis_query} AS user_is_visible
                    FROM seminar_user
                    LEFT JOIN auth_user_md5 USING (user_id)
                    LEFT JOIN user_info USING (user_id)
                    WHERE Seminar_id = ? AND status = ?
                    GROUP by user_id
                    ORDER BY Nachname, Vorname";
        $user_statement = DBManager::get()->prepare($query);

        foreach (words('dozent tutor autor user') as $key) {
            // die eigentliche Teil-Tabelle

            $user_statement->execute(array($sem_id, $key));
            $users = $user_statement->fetchAll(PDO::FETCH_ASSOC);
            $user_statement->closeCursor();

            //haben wir in der Personengattung ueberhaupt einen Eintrag?
            if (count($users) > 0) {
                $dump .= '<table width="100%" border="1" cellpadding="2" cellspacing="0">';
                $dump .= '<tr><td align="left" colspan="3" class="table_header_bold">';
                $dump .= '<h2 class="table_header_bold">&nbsp;' . get_title_for_status($key, count($users), $sem_type) . '</h2>';
                $dump .= '</td></tr>' . "\n";
                $dump .= '<th width="30%">' . _('Name') . '</th>';
                $dump .= '<th width="10%">' . _('Forenbeiträge') . '</th>';
                $dump .= '<th width="10%">' . _('Dokumente') . '</th></tr>' . "\n";

                foreach ($users as $user) {
                    $documents_params[1] = $user['user_id'];
                    $documents_statement->execute($documents_params);
                    $count = $documents_statement->fetchColumn() ?: 0;
                    $documents_statement->closeCursor();

                    // get number of postings for this user from all forum-modules
                    $postings = 0;
                    foreach ($forum_modules as $plugin) {
                        $postings += $plugin->getNumberOfPostingsForUser($user['user_id'], $sem_id);
                    }

                    $dump .= sprintf('<tr><td>%s</td><td align="center">%u</td><td align="center">%u</td></tr>' . "\n",
                                     $user['user_is_visible'] ? htmlReady($user['fullname']) : _('(unsichtbareR NutzerIn)'),
                                     $postings, $count);
                } // eine Zeile zuende

                $dump.= '</table>' . "\n";
            }
        } // eine Gruppe zuende
    }

    return $dump;
} // end function dump_sem($sem_id)
 public function show_seminar_avatar($eventname, $search_item)
 {
     if ($search_item->type === "seminar") {
         $search_item->avatar = CourseAvatar::getAvatar($search_item->entry_id)->getURL(Avatar::MEDIUM);
         $seminar = new Seminar($search_item->entry_id);
         $date = $seminar->getDatesHTML(array('link_to_dates' => false));
         $search_item->presentation = "<div>";
         $key = 0;
         foreach ($seminar->getMembers('dozent') as $dozent) {
             if ($key > 0) {
                 $search_item->presentation .= ", ";
             }
             $search_item->presentation .= '<a href="' . URLHelper::getLink("about.php", array('username' => $dozent['username'])) . '">' . htmlReady($dozent['Vorname'] . " " . $dozent['Nachname']) . '</a>';
             $key++;
         }
         $search_item->presentation .= "</div>";
         $search_item->presentation .= "<div>";
         $search_item->presentation .= htmlReady(get_semester($search_item->entry_id) . ". ");
         if ($date) {
             $search_item->presentation .= _("Termine") . ": " . $date;
         }
         $search_item->presentation .= "</div>";
         if ($GLOBALS['perm']->have_perm("admin")) {
             $search_item->tools[] = '<a href="' . URLHelper::getLink("dispatch.php/course/basicdata/view", array('cid' => $search_item->entry_id)) . '" title="' . _("Grunddaten bearbeiten") . '">' . Assets::img("icons/16/blue/edit.png", array('class' => "text-bottom")) . "</a>";
             $search_item->tools[] = '<a href="' . URLHelper::getLink("dispatch.php/course/study_areas/show", array('cid' => $search_item->entry_id)) . '" title="' . _("Studienbereiche festlegen") . '">' . Assets::img("icons/16/blue/grouping.png", array('class' => "text-bottom")) . "</a>";
             $search_item->tools[] = '<a href="' . URLHelper::getLink("raumzeit.php", array('cid' => $search_item->entry_id)) . '" title="' . _("Zeiten/Räume") . '">' . Assets::img("icons/16/blue/date.png", array('class' => "text-bottom")) . "</a>";
             $search_item->tools[] = '<a href="' . URLHelper::getLink("dispatch.php/course/room_requests", array('cid' => $search_item->entry_id)) . '" title="' . _("Raumanfragen") . '">' . Assets::img("icons/16/blue/room_request.png", array('class' => "text-bottom")) . "</a>";
         }
     }
 }
 function get_curriculum_semesters($curriculum_id = false, $yearlevel_id = false)
 {
     $CI =& get_instance();
     $CI->load->model("Curriculum_Subject_Model");
     $curriculum_semesters = false;
     $curriculumsubjectinfo = new Curriculum_Subject_Model();
     $query = false;
     if ($curriculum_id) {
         $where = array("curriculum_id" => $curriculum_id);
         if ($yearlevel_id) {
             $where["yearlevel_id"] = $yearlevel_id;
         }
         $query = $CI->db->select("sem_id")->from($curriculumsubjectinfo->table_name)->where($where)->group_by("sem_id")->get();
     }
     if ($query && $query->num_rows() > 0) {
         $curriculum_semesters = array();
         foreach ($query->result() as $rwi => $rw) {
             $curriculum_semesters[] = get_semester($rw->sem_id);
         }
     }
     return $curriculum_semesters;
 }
 public function curriculum_settings_delete_semester($sem_id = false)
 {
     if ($sem_id && is_semester_exist($sem_id)) {
         $semesterinfo = get_semester($sem_id);
         if ($semesterinfo) {
             $semesterinfo->delete();
             if (is_semester_exist($sem_id)) {
                 //failed..
             } else {
                 //success..
             }
         } else {
             //failed..
         }
         redirect("dashboard/curriculums/settings/semesters");
         //$this->load->view("management/dashboard/curriculums/settings/semesters/pre_view",$this->data);
     } else {
         show_404();
     }
 }
Exemple #8
0
      </a>
    </p>

    <table class="default">
      <? foreach ($news as $sem_titel => $data) : ?>
        <tr class="table_header_bold">
          <td colspan="2" style="font-weight: bold;">
            <a href="<?php 
echo URLHelper::getLink('seminar_main.php?again=yes&auswahl=' . $data[0]['range_id']);
?>
">
              <?php 
echo htmlReady($sem_titel);
?>
              <?php 
echo ($semester = get_semester($data[0]['range_id'])) ? ' (' . $semester . ')' : '';
?>
            </a>
          </td>
        </tr>

        <? foreach ($data as $module) : ?>
        <tr class="<?php 
echo TextHelper::cycle('hover_odd', 'hover_even');
?>
">
          <td>
            <a href="<?php 
echo URLHelper::getLink($module['url']);
?>
"><?php 
    function toString ($args) {
        $out = "";
        $this->seminar_id = $args["seminar_id"];
        $query = "SELECT * FROM seminare WHERE Seminar_id = ?";
        $parameters = array($this->seminar_id);
        $statement = DBManager::get()->prepare($query);
        $statement->execute($parameters);
        $row = $statement->fetch(PDO::FETCH_ASSOC);
        
        $visible = $this->config->getValue("Main", "visible");
        $j = -1;
        if ($row !== false) {

            $data["name"] = htmlReady($row['Name']);

            if ($visible[++$j] && $row['Untertitel'])
                $data["subtitle"] = htmlReady($row['Untertitel']);

            if ($visible[++$j]) {
                if (!$name_sql = $this->config->getValue("Main", "nameformat"))
                    $name_sql = "full";
                $name_sql = $GLOBALS['_fullname_sql'][$name_sql];

                $query = "SELECT $name_sql AS name, username, position FROM seminar_user su LEFT JOIN
                        auth_user_md5 USING(user_id) LEFT JOIN user_info USING(user_id)
                        WHERE su.Seminar_id = ? AND su.status='dozent' ORDER BY position, username";
                $parameters = array($this->seminar_id);
                $statement = DBManager::get()->prepare($query);
                $statement->execute($parameters);
                while ($res = $statement->fetch(PDO::FETCH_ASSOC)) {
                    $data["lecturer"][] = $this->elements["LinkInternSimple"]->toString(
                            array("module" => "Persondetails",
                            "link_args" => "username="******"&seminar_id=" . $this->seminar_id,
                            "content" => $res['name'] ));
                }
                if (is_array($data["lecturer"]))
                    $data["lecturer"] = implode(", ", $data["lecturer"]);
            }

            if ($visible[++$j] && $row['art'])
                $data["art"] = htmlReady($row['art']);

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

                $aliases_sem_type = $this->config->getValue("ReplaceTextSemType",
                        "class_" . $GLOBALS["SEM_TYPE"][$row['status']]['class']);
                if ($aliases_sem_type[$sem_types_position[$row['status']] - 1])
                    $data["status"] =  $aliases_sem_type[$sem_types_position[$row['status']] - 1];
                else
                    $data["status"] = htmlReady($GLOBALS["SEM_TYPE"][$row['status']]["name"]);
            }

            if ($visible[++$j] && $row['Beschreibung'])
                $data["description"] = formatLinks($row['Beschreibung']);

            if ($visible[++$j])
                $data["location"] = htmlReady(Seminar::getInstance($this->seminar_id)->getDatesTemplate('dates/seminar_export_location'));

            if ($visible[++$j])
                $data["semester"] = get_semester($this->seminar_id);

            if ($visible[++$j]) {
                $data["time"] = htmlReady(Seminar::getInstance($this->seminar_id)->getDatesExport());
                if ($first_app = vorbesprechung($this->seminar_id, 'export')) {
                    $data["time"] .= "<br>" . $this->config->getValue("Main", "aliaspredisc") . htmlReady($first_app);
                }
                if ($begin = Seminar::getInstance($this->seminar_id)->getFirstDate('export')) {
                    $data["time"] .= "<br>" . $this->config->getValue("Main", "aliasfirstmeeting") . htmlReady($begin);
                }
            }

            if ($visible[++$j] && $row['VeranstaltungsNummer'])
                $data["number"] = htmlReady($row['VeranstaltungsNummer']);

            if ($visible[++$j] && $row['teilnehmer'])
                $data["teilnehmer"] = htmlReady($row['teilnehmer']);

            if ($visible[++$j] && $row['vorrausetzungen'])
                $data["requirements"] = htmlReady($row['vorrausetzungen']);

            if ($visible[++$j] && $row['lernorga'])
                $data["lernorga"] = htmlReady($row['lernorga']);

            if ($visible[++$j] && $row['leistungsnachweis'])
                $data["leistung"] = htmlReady($row['leistungsnachweis']);

            if ($visible[++$j]) {
                $range_path_level = $this->config->getValue("Main", "rangepathlevel");
                $pathes = get_sem_tree_path($this->seminar_id, $range_path_level);
                if (is_array($pathes)) {
                    $data["range_path"] = htmlReady(implode("\n", array_values($pathes)),true,true);
                }
            }

            if ($visible[++$j] && $row['Sonstiges'])
                $data["misc"] = formatLinks($row['Sonstiges']);

            if ($visible[++$j] && $row['ects'])
                $data["ects"] = htmlReady($row['ects']);

            // generic data fields
            if ($generic_datafields = $this->config->getValue("Main", "genericdatafields")) {
                $localEntries = DataFieldEntry::getDataFieldEntries($this->seminar_id);
                foreach ($generic_datafields as $id) {
                    if ($visible[++$j] && isset($localEntries[$id]) && is_object($localEntries[$id])) {
                        $data[$id] = $localEntries[$id]->getDisplayValue();
                    }
                }
            }
            $out = $this->toStringMainTable($data, FALSE);
        }

        return $out;
    }