2012-01-31 18 views
0

私は、テーマ/テンプレートに相当するビューで作業するCMS(elgg:http://www.elgg.org)を使用します。私は追加しない場合現在のURLにカスタム値を追加する方法

http://www.mydomain.com/index.php?view=mytheme

= mytheme、Elggのは、だから、デフォルト

によってビューを選択表示:??私は好きで、ビュー= mytheme URL内の用語を配置する必要がテーマを変更するには私は、特定のユーザーのために、私はカスタムビューにリダイレクトしたい、ヘルプを必要とし、デフォルトのビューを見ることができません。

私は自分のヘッダにこれを行います。

<?php 

    if ((string) $_SESSION['user']->type === '2') { 
    // ??? 
    } else { 
    echo 'do nothing'; 
    } 

私は現在のURLを取る方法がわからない、と最後に簡単な追加= mytheme?ユーザーは、それが前方にする必要が「2」のタイプがあり、URL http://www.mydomain.com/index.php を参照してください

>http://www.mydomain.com/index.php?view=mytheme

感謝。

+2

これはどのようなCMSですか?リダイレクトには特別な機能がありますか? –

+1

それはエルグです。私はこれがソーシャルネットワーキングCMSだと信じています。私の唯一の経験は約4年前からのものなので、リダイレクションについてはわかりません。 – Tim

+0

申し訳ありませんが、正確にはELGG(1.7.14)のメッセージを編集し、リダイレクト用の特別な機能があるかどうかわかりません – Tomaw

答えて

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がより長いクエリ文字列をサポートして、何らかの作業が必要な場合、これはあまり効果がありません。

+0

回答ありがとうCodemonkey if((string )$ _SESSION ['user'] - > type === '2' && !isset($ _ GET ["view"]){ $ newurl = curPageURL()。 '?view = mytheme'; header( "所在地:$のNEWURL "); Elggのが好きなように思われません } ... 私はこの書き込み:({場合 を" $ _SESSION [ 'ユーザー'] - >」と入力} ===「2 '){ $ newurl = curPageURL()。'?view = mytheme '; ヘッダー( "場所:$ newurl"); } それはうまくいっていますが、それはそれぞれのリクエストに対してでしたか?view = mytheme ...内部にあるようです... isset ... – Tomaw

+0

更新してみてください。 'isset'も' $ _GET'もelggとは関係ないので、それは問題ではありません。 – Hubro

+0

あなたは猿ではありませんが、ギニアではありません;) ありがとうコードダイモン – Tomaw

関連する問題