我使用CMS(elgg:http://www.elgg.org)处理视图,相当于主题/模板。要更改主题,我必须在URL中放入术语?view = mytheme,如:
http://www.mydomain.com/index.php?view=mytheme
如果我没有添加?view = mytheme,elgg默认选择视图
所以,我需要帮助,对于特定用户,我想将我们重定向到自定义视图,并且无法看到默认视图。
我在标题中做到了这一点:
<?php
if ((string) $_SESSION['user']->type === '2') {
// ???
} else {
echo 'do nothing';
}
我不知道如何获取当前网址,并在最后简单添加?view = mytheme?
当用户输入“&#39; 2&#39;”时,会看到网址http://www.mydomain.com/index.php 它必须转发到&gt; http://www.mydomain.com/index.php?view=mytheme
感谢。
答案 0 :(得分:1)
这有点脏,但你可以:
// Stole this from here: http://webcheatsheet.com/php/get_current_page_url.php
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
$useCustomView = ((string)$_SESSION['user']->type) === '2';
$usingCustomView = isset($_GET["view"]);
// Redirect to custom view if user type is 2 and view is not already set
if ($useCustomView && !$usingCustomView) {
$newurl = curPageURL() . '?view=mytheme';
header("Location: $newurl");
}
这是我能想到要完成你所要求的最基本的例子。如果您希望URL支持更长的查询字符串,那么这将无法完成工作,因此需要一些工作。