widget/reply: load file upload progress indicator
[minimedit.git] / upload.inc.php
index 4eff8a09cdcc07374e8ac7e6228bf6c797d0c174..f79600f892de3ee018377e1ab9adf460b3ce3646 100644 (file)
@@ -1,4 +1,6 @@
 <?php
+$Page->api = $_SERVER['HTTP_ACCEPT'] == 'text/plain';
+
 function userupload($input, $target = NULL, $filename = NULL)
 {
        switch ($input['error']) {
@@ -41,10 +43,17 @@ function userupload($input, $target = NULL, $filename = NULL)
 function messagehtml($input)
 {
        # convert user textarea post to formatted html
+       global $User;
        if (empty($input)) {
                return;
        }
-       $html = htmlspecialchars($input);
-       $html = preg_replace('"(?:<br />){2}"', "</p>\n\n<p>", nl2br($html));
+       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>";
 }