Take 3 slightly better question mark handling, a=chris

Chris Pollett [2019-01-27 23:Jan:th]
Take 3 slightly better question mark handling, a=chris
Filename
src/controllers/ResourceController.php
src/controllers/components/SocialComponent.php
src/views/elements/WikiElement.php
diff --git a/src/controllers/ResourceController.php b/src/controllers/ResourceController.php
index 32c7d90bb..1a8c945a0 100644
--- a/src/controllers/ResourceController.php
+++ b/src/controllers/ResourceController.php
@@ -95,8 +95,10 @@ class ResourceController extends Controller implements CrawlConstants
             if (!empty($_REQUEST['t']) && $_REQUEST['t'] == 'feed') {
                 $type = "";
             }
+            $name = urlencode($name);
             $name = UrlParser::getDocumentFilename($name);
-            $name = ($type != "") ? "$name.$type":$name;
+            $name = urldecode($name);
+            $name = ($type != "") ? "$name.$type" : $name;
             if (!empty($_REQUEST['t'])) {
                 $name .= ".jpg";
             }
diff --git a/src/controllers/components/SocialComponent.php b/src/controllers/components/SocialComponent.php
index d80ed8a2e..c14ccf661 100644
--- a/src/controllers/components/SocialComponent.php
+++ b/src/controllers/components/SocialComponent.php
@@ -3180,7 +3180,9 @@ EOD;
         $page_name, $page, $page_defaults, $sub_path, $edit_reason,
         $missing_fields, $read_address, $additional_substitutions)
     {
-        if (!$data["CAN_EDIT"]) { return; }
+        if (!$data["CAN_EDIT"]) {
+            return;
+        }
         $parent = $this->parent;
         $group_model = $parent->model("group");
         if (isset($_REQUEST['caret']) &&
@@ -3398,6 +3400,17 @@ EOD;
                 }
             }
         }
+        if (!empty($_REQUEST['clear']) && !empty($_SESSION['seen_media'])
+            && is_array($_SESSION['seen_media'])) {
+            $media_name = $parent->clean($_REQUEST['clear'], 'file_name');
+            $hash_id = L\crawlHash($page_info['ID']. $media_name . $sub_path);
+            if (in_array($hash_id, $_SESSION['seen_media'])) {
+                $_SESSION['seen_media'] = array_diff($_SESSION['seen_media'],
+                    [$hash_id]);
+                $parent->model("user")->setUserSession($_SESSION['USER_ID'],
+                    $_SESSION);
+            }
+        }
         if (isset($_REQUEST['delete'])) {
             $resource_name = $parent->clean($_REQUEST['delete'],
                 "file_name");
diff --git a/src/views/elements/WikiElement.php b/src/views/elements/WikiElement.php
index ac7f0e405..c52b0bb12 100644
--- a/src/views/elements/WikiElement.php
+++ b/src/views/elements/WikiElement.php
@@ -975,7 +975,8 @@ class WikiElement extends Element implements CrawlConstants
                         $written_name = $name;
                     }
                     $current_url = "$url_prefix&n=".urlencode($name);
-                    $clear_url = "$url_prefix&clear=" . urlencode($name);
+                    $clear_url = "$folder_prefix&clear=" .
+                        urlencode($name);
                     $current_thumb = "$thumb_prefix&n=".urlencode($name);
                     if (!empty($data['SUB_PATH'])) {
                         if (strpos($current_url, "sf=") === false) {
@@ -1030,7 +1031,7 @@ class WikiElement extends Element implements CrawlConstants
                         e("<td></td>");
                     }
                     e("<td><a href='$current_url'>");
-                    e("<img src='".$current_thumb."'  alt='' />");
+                    e("<img src='" . $current_thumb . "'  alt='' />");
                     e("</a></td>");
                     if ($read_mode) {
                         e("<td><a href='$current_url'>".
ViewGit