1

ModX では、ユーザーがどのページにいるかに基づいて単純なリダイレクトを作成しようとしています。私のサイトには、「私たちについて」、「採用情報」などのページへのさまざまなリンクを含むチャンクがあります。このチャンクは、サイトのすべてのページで使用されています。

私の問題はここから始まります - 採用情報ページ内に、利用可能なすべての求人情報を含む新しいページへのリンクがあります。ユーザーが採用ページにいるときに、チャンクの採用ページへのリンクをクリックすると、採用ページにループバックするのではなく、直接求人ページに移動するようにしたいと思います。

採用情報ページへの URL は次の形式です。

www.example.com/index.php?q=careers.html

したがって、ユーザーが採用情報ページにいる場合、チャンク内の私のコードは、求人情報にリダイレクトします。

<?php
    if ($_SERVER['PHP_SELF'] == "index.php?q=careers.html") {
      echo '<p><a href="www.joblistsite.com">Careers</a></p>';
    } 
    else {
      echo '<p><a href="index.php?q=careers.html">Careers</a></p>';
    }
?>

しかし、これはうまくいきません。求人情報ページではなく、採用情報ページへのリンクが引き続き表示されます。ページの ID を使用してみましたが、それも使用しません。ModX で現在のページを取得するには、 ifステートメントに何を使用すればよいですか? 私は何を間違っていますか?

4

3 に答える 3

3

上記の解決策(特にWayFinder)は機能しますが、私が提案するのは、ページエイリアスを指定してSEOに適したURLを生成できるMODX組み込み機能を使用することです。このようなエイリアスを使用すると、現在のページを簡単に見つけることができます。

シンプルでありながら効果的な解決策は、ページエイリアスを使用して、現在のエイリアスと比較することです。

$page_alias = $modx->resource->get('alias'); // get alias of the current page

if($page_alias == 'something'){
// do something
}

マルチレベルのページを扱う場合は、リソースの親を取得して、上記をより効率的に機能させることができます。

$parent = $modx->resource->get('parent');
于 2013-03-19T12:06:09.380 に答える
2

あなたはMODXの初心者だと思います。一般に、Wayfinderは動的メニューの構築に使用され、現在行っているようなハードコーディングされたソリューションの必要性を回避します。

開始するには: http://rtfm.modx.com/display/ADDON/Wayfinder+Introductory+Examples

やりたいように href 属性を切り替えるには&hereTpl、現在のページに関連するメニュー項目に表示される別のパラメーターを指定できます。URL は、www.joblistsite.com各ページに設定されたテンプレート変数に含まれている場合があります。

于 2013-03-15T21:48:45.173 に答える
0

私は modx の経験がありませんが、これを決定するための最良のオプションは、$_SERVER変数をデバッグし、その中のさまざまな「キー」の内容を確認することです。

echo '<pre>'; print_r($_SERVER); echo '</pre>';
于 2013-03-15T20:11:33.083 に答える