Example #1
0
 /**
  * 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;
 }
Example #2
0
/**
 * 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;
    }
}
Example #3
0
    $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);