2017-12-12 6 views
1

URLパスをチェックし、文字列がexact/pageが親である場合にのみ動作するテンプレートファイル(Drupal 7)内に簡単な条件を実装したいと考えています。現時点では、私は条件付きの作業をしていますが、条件が一致したときにURL文字列のサブページに対して実行されます。例えば:PHPの一致文字列親レベルのURL文字列のみ。サブディレクトリパスを無視する

$url_vars = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; 
if (strpos($url_vars, 'parent-page') !== false) { 
// Do something 
} 

これはまだそう、何階層のために動作します。条件は厳密にすぎず、サブディレクトリを親ディレクトリを管理するよう

parent-page/sub-page 

がどのように私はこの仕事をするのですか?どんな指導やアイデアも大きな助けになるでしょう。私はフロントエンドではなく、このサーバー側を処理することをお勧めします。

ありがとうございます!マーク。 。

答えて

1

私はあなたのREQUEST_URI文字列が異なりますどのくらい正確にわからないが、これは十分である:

if(strpos($_SERVER['REQUEST_URI'],'parent-page')!==false && strpos($_SERVER['REQUEST_URI'],'parent-page/')===false){ 

これは単にparent_page(静的な文字列が)REQUEST_URIに存在することを確認し、それが持っていないこと末尾の/

これがトリックではない場合は、URI値についてさらに具体的な情報を提供してください。

潜在的に有用な参照:https://stackoverflow.com/a/4731027/2943403

+0

これは完璧に動作します。私はこれを見落としたとは思えません。ありがとうございました! –

0

あなたが「親ページ」でURLを爆発し、それがサブレベルだかどうかを確認するために配列をカウントすることができます。削除し「親ページ」を爆発し、あなたが「のhttp://」を保持している一つの項目で終わる必要があり、残りの配列を作成します

$arr = explode("parent-page", $url_vars); 
If(count($arr) <= 1) { 
     // Parent-page 
} 

ので。
サブページである2番目のアイテムを取得した場合。

-1

$_GET['q']変数には現在のページパスが含まれている必要があります。 $url_varsの代わりに使ってみてください。コンテキストモジュール上のいくつかのより高度な使用方法のチェックのために

https://www.drupal.org/project/context

関連する問題