web-dev-qa-db-ja.com

ノードのタイトルをビューの引数/パスとして設定する

特定のコンテンツタイプのノードのパスに/ tsvが追加されている場合(path_autoによって生成されます)、特別な形式のファイルを生成するフィードビューを作成しています

つまり、

これを行うにはどうすればよいですか?フィードパスとしてnode /%/ tsv、Node:Nidを引数として使用(「引数が存在しない場合のアクション」として「URLからのノードID」を使用) 。

私が見逃している明らかな何かがあるはずだと思います...申し訳ありませんが、これが以前にカバーされていた場合、投稿する前に本当に解決策を探しました。

ありがとう!

3
aendrew

サブパスURLエイリアスモジュール は、探していることを実行する必要があります(ビューの引数で正常に使用します)...

モジュールページから:

たとえば、node/1content/aliasにエイリアスされている場合、このモジュールは代わりにノード編集ページnode/1/editへのリンクを書き換えて、エイリアスされたURL content/alias/editを使用します。これには、ノードを引数として使用するビューのURL(node/%/yourview)、つまり、既存のエイリアスに基づく、または拡張するすべてのURLも含まれます。

2
Franky Chung

質問を理解したかどうかはわかりませんが、答えは次のとおりです。

引数でNode:Nidを引数として設定します。次に、Provide Default引数を設定し、URLからNODE IDを選択します。

ここにすべてのステップがあります。

ノードには2つの異なるビューがあります。

  1. 通常のビュー。 URL-> mydomain.com/node/%nid/はノードのコンテンツを表示します
  2. フィードビュー。 URL-> mydomain.com/node/%nid/tsvはフィードを表示します。

しかし、mydomain.com/node /%nid/tsvに移動すると、正しく機能しませんか?だからあなたが求めているのは、フィードを表示するためにこのURLを「作成」する方法です...それはそれですか?

その場合、VIEWS2では次のようになります。

  1. 新しいページ表示を作成します。
  2. ページ設定(左下隅)には、PATHと呼ばれるオプションがあります。これをnode /%/ tsvに設定します。
  3. まだページ設定でメニューと呼ばれるオプションがあります。ビューにリンクするタブを表示したい場合は、これをメニュータブに設定します。 |見る| TSV |
  4. 引数で、ノード:Nidを引数として設定します。次に、Provide Default引数を設定し、URLからNODE IDを選択します。
  5. 検証セット基本検証(またはNodeタイプ)
  6. フィールドで、表示するフィールドを選択します。
  7. 公開されたノードにフィルターを追加し(ノードが公開されている場合にのみ表示)、フィルターのユーザーロール(特定のユーザーへのアクセスを制限します)

そしてそれだけです... mydomain.com/node/%nid/tsvに移動すると、選択したフィールドが表示されます。

2
Tivie

Tivieの回答に基づいて構築し、サブパスモジュールを使用せずにviews3を更新しています...

Node /%/ tsvの代わりにnode /%/%/ tsvのパスを使用することをお勧めします。これを行うには、まず、コンテンツタイプのPathAutoの置換パターンを次のように変更します。

node/[node:nid]/[node:title] 

すべてのエイリアスを削除してから、コンテンツを一括更新してください。

パスの最初の位置にある「ノード」の代わりに、好きなパスを使用できることに注意してください。例えば質問/ [ノード:nid]/[ノード:タイトル]、猫/ [ノード:nid]/[ノード:タイトル]、魚/ [ノード:nid]/[ノード:タイトル]。

これで、ビューパスはnode /%/ tsvではなくnode /%/%/ tsvになります。これにより、ビューのコンテキストフィルター(Views2の引数)でnidを無効にできますが、SEO対応のノードタイトルは保持されます。つまり、この質問のstackexchangeとまったく同じです。

次のパートでは、パスnode /%/%/ tsvにアクセスしたときに、コンテンツタイプの単一のノードを表示するビューを作成します。

  1. 構造>ビュー>新しいビューを追加する
  2. ビュー名を追加
  3. タイプyour-content-typeのコンテンツを表示
  4. パスで、これをnode /%/%/ tsvに設定します。 (「ノード」は「質問」、「魚」、「猫」、何もない、または何でもかまいません
  5. 続行して編集
  6. 次のページで、ユーザーがページにアクセスしたときに表示されるようにフォーマットとフィールドを設定します。表示スイートビューモードを使用して、コンテンツタイプを提示するさまざまな方法を提供します。ビューを複製して複数のパスがある場合に便利です。例えばnode /%/%/ tsv、node /%/%/ images /、node /%/%/ friends。
  7. [詳細、コンテキストフィルター]で、[追加]を選択し、リストから[ノード:Nid]を追加します。
  8. フィールドグループ「フィルター値がURLにない場合」で、[デフォルト値の提供]> [URLのコンテンツID]を選択します
  9. フィールドグループで、「フィルター値IS URLまたはデフォルトが提供されている場合」で、[検証基準の指定]> [コンテンツ]を選択し、ノードのコンテンツタイプを選択します。
  10. フィルター値の形式はNode IDと、 "ページが見つかりません"を表示するためのアクションである必要があります

Mydomain.com/node/%/tsvに移動すると、表示スイートモードで選択した配置で選択したフィールドが表示されます。

0
Steve