0

URL に基づいてコンテンツを表示するビューを作成しました。さらに、このユーザーの関連プロジェクトをサイドバーに表示したいので、コンテキスト フィルターと既定値を使用してブロック ビューを作成します。

私のURLはprojects/usernameなので、デフォルト値を使用して-> URLからの生の値なので、パスコンポーネントを2に設定しましたが、それはうまくいきません。

例: 私のユーザー名が「abc」だとします。

プレビューでは、URL パスが「projects/abc」の場合、ユーザー名は URL パスの 2ed コンポーネントにありますが、何も表示されません。

URL パスが「abc/*」の場合、関連するコンテンツが表示されます。つまり、ユーザー名が URL パスの最初の引数にある限り、機能します。

どうなるかわかりませんが、パス コンポーネントを 2 に設定してもうまくいかないようです。どうしたの?

4

1 に答える 1

0

Yoは何かが恋しいです。各ユーザーには URL エイリアスがあると思います。たとえば、「user/1」には URL エイリアス「abc」があります。コンテキスト フィルタの URL コンポーネントは、エイリアスではなく直接 URL に対して機能します。たとえば、元の URL が「user/1」であるため、ユーザー URL「abc」の 2 番目のコンポーネントは「1」になります。作業ビューのヘッダーに引数を出力することで簡単にデバッグできます。自分で試してみてください。

<?php print arg(0) . '<br>' . arg(1); ?>

エイリアス 'abc' を持つ私の user/1 の場合、次に受け取りました:
user
1
パス 'abc/*' の場合、これは 2 番目のコンポーネントですが
、パス 'projects/username' の場合、この URL にはエイリアスがないため、3 番目ではありません[uid] コンポーネントを使用する場合、projects/[uid] またはその他の引数の検証を使用する必要があります。たとえば、プロジェクトの autor を確認できます。「UR'L からユーザー ID を選択し、コンテキスト フィルターのデフォルト値設定でオプション「ノードも検索し、ノードの作成者を使用する」をチェックします。

于 2012-05-12T01:10:33.537 に答える