page: api attribute indicate index requests
[minimedit.git] / upload.inc.php
index f1018c2417770f09701d67970e1617ae5a4c3ca6..6175fe20a685b1b1df707ccba8e74f4bad2564f1 100644 (file)
@@ -4,6 +4,10 @@ function userupload($input, $target = NULL, $filename = NULL)
        switch ($input['error']) {
        case UPLOAD_ERR_OK:
                break;
+       case UPLOAD_ERR_INI_SIZE:
+       case UPLOAD_ERR_FORM_SIZE:
+               throw new Exception('bestand te groot');
+               break;
        case UPLOAD_ERR_NO_FILE:
                return; # current
        default:
@@ -24,7 +28,7 @@ function userupload($input, $target = NULL, $filename = NULL)
        }
 
        if (!@move_uploaded_file($input['tmp_name'], $target)) {
-               throw new Exception('bestand kon niet worden opgeslagen');
+               throw new Exception("bestand kon niet worden opgeslagen in $target");
        }
 
        foreach (@glob('thumb/*/') as $thumbres) {
@@ -33,3 +37,21 @@ function userupload($input, $target = NULL, $filename = NULL)
        }
        return $target;
 }
+
+function messagehtml($input)
+{
+       # convert user textarea post to formatted html
+       global $User;
+       if (empty($input)) {
+               return;
+       }
+       if ($User->admin and preg_match('/\A<[a-z][^>]*>/', $input)) {
+               return $input;  # allow html input as is if privileged
+       }
+       $html = preg_replace(
+               ["/\r?\n/", "'(?:<br />\n?){2}'"],
+               ["<br />\n", "</p>\n\n<p>"],
+               htmlspecialchars($input)
+       );
+       return "<p>$html</p>";
+}