質問

私が構築している 1 つのビューで Drupal パスに問題があります。現在、私のビューは次の形式になっています。目次/2/6。

2 と 6 が 2 つのノードの ID である場合、これらの ID を操作して、たとえばそれらのノードのタイトルを翻訳したいと思います。

これらの値をパネルに送信しているため、ビューからこれを行うことはできません。パネルはノードの ID を受信する必要があります。

要約すると、(pathauto が行うように) これらの ID をタイトルに書き換えたいだけですが、それはできますか?これのための特定のモジュールはありますか?

ありがとう!

役に立ちましたか?

解決

私の理解が正しければ、元のパス 'content/[nid_x]/[nid_y]' を保持したいと考えていますが、ノードからのより多くの 'speaking' パス要素を持つパス要素 (例:タイトル)。それが正しい場合、次の 2 つの選択肢があります。

まず、「admin/build/path/add」の下に「content/[nid_x]/[nid_y]」の URL エイリアスを定義することで、これを手動で行うことができます。これは簡単に実行できますが、多くのエイリアスが必要な場合は、おそらく探しているものではありません。

2 番目に、次の方法でプログラム的に実行できます。 path_set_alias() 関数。この関数の使用は非常に簡単です。唯一の問題は、それをどこでトリガーするかということです。あなたの説明からは、これらのビューがいつどこで作成されるのかが明確ではないため、提案を思いつくのは難しいです。おそらく、質問を編集して、それについてもう少し具体的にすることができます。

特定のノードの組み合わせに対してビュー URL エイリアスを作成したい場合は、次の「挿入」、「更新」、および「削除」操作を使用してみてください。 hook_nodeapi() エイリアスの作成をトリガーします。明らかに、これは、どのノードにエイリアスを作成するかどうかをコードから決定できる一貫したルールがある場合にのみ機能します。

特定のパスに URL エイリアスを設定すると、そのパスへのリンクが l() 関数。たとえば、「content/2/6」を指すメニュー エントリを作成すると、使用される URL は自動的にそのパスに対して作成したエイリアスになります。


編集:プログラムでエイリアスを作成することになった場合に備えて - とにかく pathauto を使用する場合は、そのパスオートを使用できます/使用する必要があります。 pathauto_cleanstring()(「pathauto.inc」から) 関数を使用して、生成された URL が適切にエスケープされ、許可された文字に書き換えられるようにします。

他のヒント

専用のカスタムURLを作成するために、カスタムURL機能を使用する方法があります。私はわからないけれども、あなたがパネルを使用している場合、それは非常に静的なので、あなたがこのようにそれを行うにしたいと思う場合ます。

function custom_url_rewrite($op, $result, $path) {

  if ($op == 'alias') {
    if (preg_match('|^[node_id#_here](/{0,1}.*)|', $path, $matches)) {
      return '[desired_alias]'. $matches[1];
    }
  }

  if ($op == 'source') {
    if (preg_match('|^[node_id#](/{0,1}.*)|', $path, $matches)) {
      return '[desired_source]'. $matches[1];
    }
  }

  return $result;

}

あなたは、あなた自身だけでなく、あなた自身の希望エイリアスとソースとノードID#秒を代用することをお勧めします。この情報がお役に立てば幸いです。

おそらく便利aswellます:

<a href="nodeview/[title]/nid" title="[title]">link tekst</a>のようなトークンの交換を使用してリンクを構築するためにビューを使用して開始するリンクを変更 そしてパスEXAのnodeview及び引数NULL、NULL、NIDのf.iとビュー内のノードを扱う。

より複雑なリンクのための私たちの文字列を構築するためのビューPHPのフィールド..

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top