/** * fetches set of content from database for given route * * @param string $route route for help content * @param string $language language * @return array set of help content */ public static function GetContentByRoute($route = '', $language = '') { $language = $language ?: substr($GLOBALS['user']->preferred_language, 0, 2); if (!$language) { $language = 'de'; } $version = Config::get()->getValue('HELP_CONTENT_CURRENT_VERSION'); if (!$version) { return array(); } $route = get_route($route); $query = "SELECT *\n FROM help_content\n WHERE route LIKE CONCAT(?, '%') AND language = ? AND visible = 1"; $statement = DBManager::get()->prepare($query); $statement->execute(array($route, $language)); $ret = $statement->fetchGrouped(PDO::FETCH_ASSOC); foreach ($ret as $index => $data) { if (!match_route($data['route'], $route)) { unset($ret[$index]); } } return $ret; }
/** * Checks whether a given file upload is valid and allowed. * * @param $the_file file to upload to Stud.IP * @param $real_file_name an optional real file name for handling files * inside a ZIP (otherwise, the filename of the ZIP itself would always be * used) * * @return Can the given file be uploaded to Stud.IP? */ function validate_upload($the_file, $real_file_name='') { global $UPLOAD_TYPES, $msg, $SessSemName, $user, $auth; $the_file_size = $the_file['size']; $the_file_name = $the_file['name']; if (!$the_file) { # haben wir eine Datei? $emsg.= "error§" . _("Sie haben keine Datei zum Hochladen ausgewählt!") . "§"; } else { # pruefen, ob der Typ stimmt if (match_route("dispatch.php/messages/upload_attachment")) { if (!$GLOBALS["ENABLE_EMAIL_ATTACHMENTS"] == true) $emsg.= "error§" . _("Dateianhänge für Nachrichten sind in dieser Installation nicht erlaubt!") . "§"; $active_upload_type = "attachments"; $sem_status = $GLOBALS['perm']->get_perm(); } else { if (Request::option('cid')) { $sem_status = $GLOBALS['perm']->get_studip_perm($SessSemName[1]); $active_upload_type = $SessSemName["art_num"]; } else { $sem_status = $GLOBALS['perm']->get_perm(); $active_upload_type = "personalfiles"; } if (!isset($UPLOAD_TYPES[$active_upload_type])) { $sem_status = $GLOBALS['perm']->get_perm(); $active_upload_type = 'default'; } } //erlaubte Dateigroesse aus Regelliste der Config.inc.php auslesen $max_filesize = $UPLOAD_TYPES[$active_upload_type]["file_sizes"][$sem_status]; //Die Dateierweiterung von dem Original erfragen $pext = strtolower(getFileExtension($real_file_name ? $real_file_name : $the_file_name)); if ($pext == "doc") $doc=TRUE; //Erweiterung mit Regelliste in config.inc.php vergleichen if ($UPLOAD_TYPES[$active_upload_type]["type"] == "allow") { $t=TRUE; $i=1; foreach ($UPLOAD_TYPES[$active_upload_type]["file_types"] as $ft) { if ($pext == $ft) $t=FALSE; if ($i !=1) $exts.=","; $exts.=" ".strtoupper($ft); $i++; } if (!$t) { if ($i==2) $emsg.= "error§" . sprintf(_("Die Datei konnte nicht übertragen werden: Sie dürfen den Dateityp %s nicht hochladen!"), trim($exts)) . "§"; else $emsg.= "error§" . sprintf(_("Die Datei konnte nicht übertragen werden: Sie dürfen die Dateitypen %s nicht hochladen!"), trim($exts)) . "§"; if ($doc) { $help_url = format_help_url("Basis.DateienUpload"); $emsg.= "info§" . sprintf(_("%sHier%s bekommen Sie Hilfe zum Upload von Word-Dokumenten."), "<a target=\"_blank\" href=\"".$help_url."\">", "</a>") . "§"; } } } else { $t=FALSE; $i=1; foreach ($UPLOAD_TYPES[$active_upload_type]["file_types"] as $ft) { if ($pext == $ft) $t=TRUE; if ($i !=1) $exts.=","; $exts.=" ".strtoupper($ft); $i++; } if (!$t) { if ($i==2) $emsg.= "error§" . sprintf(_("Die Datei konnte nicht übertragen werden: Sie dürfen nur den Dateityp %s hochladen!"), trim($exts)) . "§"; else $emsg.= "error§" . sprintf(_("Die Datei konnte nicht übertragen werden: Sie dürfen nur die Dateitypen %s hochladen!"), trim($exts)) . "§"; if ($doc) { $help_url = format_help_url("Basis.DateienUpload"); $emsg.= "info§" . sprintf(_("%sHier%s bekommen Sie Hilfe zum Upload von Word-Dokumenten."), "<a target=\"_blank\" href=\"".$help_url."\">", "</a>") . "§"; } } } //pruefen ob die Groesse stimmt. if ($the_file['error'] === UPLOAD_ERR_INI_SIZE || $the_file_size > $max_filesize) { $emsg.= "error§" . sprintf(_("Die Datei konnte nicht übertragen werden: Die maximale Größe für einen Upload (%s Megabyte) wurde überschritten!"), $max_filesize / 1048576); } elseif ($the_file_size == 0) { $emsg.= "error§" . _("Sie haben eine leere Datei zum Hochladen ausgewählt!") . "§"; } } if ($emsg) { $msg .= $emsg; return false; } else { return true; } }
$route = $route . '/index'; } $_currentRoute = $route; //Start the session session_start(); //Sanitize the inputs foreach ($_GET as $key => $value) { $_GETRequest[$key] = htmlentities($value); } foreach ($_POST as $key => $value) { $_POSTRequest[$key] = htmlentities($value); } //Create $_done = 0; //check in our routes table first if ($resolver = match_route($route, $_routes)) { $route = $resolver['route']; $routeParams = $resolver['params']; } if (file_exists('app/controllers/' . $route . '.php')) { include 'app/controllers/' . $route . '.php'; $_done = 1; } if (file_exists('app/views/' . $route . '.php')) { include 'app/views/' . $route . '.php'; $_done = 1; } if ($_done == 0) { //echo "resolver"; //print_r(match_route($route,$_routes)); die('ERROR: Cannot load controller or view :' . $route);