Fix wiki redirects, a=chris

Chris Pollett [2015-08-05 18:Aug:th]
Fix wiki redirects, a=chris
Filename
src/views/elements/WikiElement.php
diff --git a/src/views/elements/WikiElement.php b/src/views/elements/WikiElement.php
index 86dd1bb51..d547ac6d2 100644
--- a/src/views/elements/WikiElement.php
+++ b/src/views/elements/WikiElement.php
@@ -72,7 +72,6 @@ class WikiElement extends Element implements CrawlConstants
             $csrf_token = C\CSRF_TOKEN."=".$data[C\CSRF_TOKEN];
             $base_query .= $csrf_token;
         }
-
         if (isset($data['OTHER_BACK_URL'])) {
             $other_base_query .= $data['OTHER_BACK_URL'];
         }
@@ -157,14 +156,16 @@ class WikiElement extends Element implements CrawlConstants
                 if ($data["MODE"] == $name) {
                     e($bar); ?><b><?= $translation ?></b><?php
                 } else if (!isset($data["PAGE_NAME"]) ||
-                    $data["PAGE_NAME"]=="")
-                    {
+                    $data["PAGE_NAME"]=="") {
                     e($bar); ?><span class="gray"><?= $translation
                     ?></span><?php
                 } else {
                     $append = "";
                     if ($name != 'pages') {
                         $append = '&amp;page_name=' . $data['PAGE_NAME'];
+                        if (isset($_REQUEST['noredirect'])) {
+                            $append .= '&amp;noredirect=true';
+                        }
                     }
                     if (isset($data['OTHER_BACK_URL'])) {
                         $append .= $data['OTHER_BACK_URL'];
@@ -225,6 +226,20 @@ class WikiElement extends Element implements CrawlConstants
             $this->renderResources($data, true, $logged_in);
         } else if ($data["PAGE"]) {
             ?><?= $data["PAGE"] ?><?php
+        } else if (!empty($data["HEAD"]['page_alias'])) {
+            $base_query = htmlentities(B\wikiUrl("", true, $data['CONTROLLER'],
+                $data["GROUP"]["GROUP_ID"]));
+            if ($logged_in) {
+                $csrf_token = C\CSRF_TOKEN."=".$data[C\CSRF_TOKEN];
+                $base_query .= $csrf_token;
+            }
+            $alias = $data["HEAD"]['page_alias'];
+            $data['PAGE']["DESCRIPTION"] = tl('wiki_element_redirect_to').
+                " <a href='$base_query&amp;".
+                "page_name=$alias'>$alias</a>";
+            ?>
+            <?=$data['PAGE']["DESCRIPTION"] ?>
+            <?php
         } else if ($can_edit) {
             ?>
             <h2><?= tl("wiki_view_page_no_exist", $data["PAGE_NAME"]) ?></h2>
@@ -646,7 +661,7 @@ class WikiElement extends Element implements CrawlConstants
                 ?>
                 <div class='group-result'>
                 <a href="<?= $base_query.'&amp;page_name='.
-                    $page['TITLE'] ?>&noredirect=true" ><?=
+                    $page['TITLE'] ?>&amp;noredirect=true" ><?=
                     $page["TITLE"] ?></a></br />
                 <?=$page["DESCRIPTION"].$ellipsis ?>
                 </div>
ViewGit