aboutsummaryrefslogtreecommitdiff
path: root/controller/guicontroller.php
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2015-08-14 07:47:15 +0200
committerChristian Weiske <cweiske@cweiske.de>2015-08-14 07:47:21 +0200
commitba4f1f02ea2f99eb2be367530f28e0146fa303f7 (patch)
tree1e0b0aa67532600621db4877f9598b5ae5450621 /controller/guicontroller.php
parentd776c4c77ddb59cb571f23bf4ef042bd0a246751 (diff)
downloadgrauphel-ba4f1f02ea2f99eb2be367530f28e0146fa303f7.tar.gz
grauphel-ba4f1f02ea2f99eb2be367530f28e0146fa303f7.zip
Fix #22 and #24: Escape slashes in tags in URLs
References: - https://github.com/cweiske/grauphel/issues/22 - https://github.com/cweiske/grauphel/issues/24
Diffstat (limited to 'controller/guicontroller.php')
-rw-r--r--controller/guicontroller.php14
1 files changed, 13 insertions, 1 deletions
diff --git a/controller/guicontroller.php b/controller/guicontroller.php
index 29dd03f..d48296d 100644
--- a/controller/guicontroller.php
+++ b/controller/guicontroller.php
@@ -168,6 +168,7 @@ class GuiController extends Controller
*/
public function tag($rawtag)
{
+ $rawtag = $this->unescapeTagFromUrl($rawtag);
$notes = $this->getNotes()->loadNotesOverview(null, $rawtag, true);
usort(
$notes,
@@ -288,7 +289,8 @@ class GuiController extends Controller
'name' => $name,
'id' => $rawtag,
'href' => $this->urlGen->linkToRoute(
- 'grauphel.gui.tag', array('rawtag' => $rawtag)
+ 'grauphel.gui.tag',
+ array('rawtag' => $this->escapeTagForUrl($rawtag))
),
'selected' => $rawtag == $selectedRawtag,
);
@@ -352,5 +354,15 @@ class GuiController extends Controller
}
return false;
}
+
+ protected function escapeTagForUrl($rawtag)
+ {
+ return str_replace('/', '%2F', $rawtag);
+ }
+
+ protected function unescapeTagFromUrl($rawtag)
+ {
+ return str_replace('%2F', '/', $rawtag);
+ }
}
?>