web-dev-qa-db-ja.com

分類用語のカスタムパスを含む分類メニュー

Taxonomy Menu module を使用して、分類用語のカスタムパスを使用して分類メニューを作成しようとしています。/taxonomy/term/tidの代わりに、/ proj /!tid(または最終的には/ proj /!term-nameが必要ですが、取得できるもので解決します)が必要です。 「メニューパスタイプ」の設定をデフォルトのままにすると、分類法メニューが正常に機能し、/ taxonomy/term/tidのままになります。 「ボキャブラリーパス」オプションを使おうとすると、メニュー用語がすべて消えてしまいます。 ドキュメントはこちら の指示に従ってみました。

タクソノミー:用語ID(深さ)およびタクソノミー:用語ID深さ修飾子の引数と、proj /%にパスが設定されたページ表示のビューがあります。さらに、projとproj /%でURLエイリアスを作成してみましたが、違いはないようです。しかし、基本的に、メニューパスタイプを「語彙パス」(ドキュメントでは「カスタムパス」)に設定すると、メニュー項目はすべて消えます。用語はまだ残っており、/ proj /%に移動できますが、メニュー項目はありません。

メニュー項目を維持しながら語彙のカスタムパスを作成する方法についてのヘルプは、大歓迎です。

4
Jay

モジュールによって実装された分類用語の分類用語パスを変更する場合は、モジュールが分類用語パスを変更できるようにするフックである hook_term_path() を実装できます。

分類用語のパスを返す関数は次のとおりです。

    function taxonomy_term_path($term) {
      $vocabulary = taxonomy_vocabulary_load($term->vid);
      if ($vocabulary->module != 'taxonomy' && $path = module_invoke($vocabulary->module, 'term_path', $term)) {
        return $path;
      }
     return 'taxonomy/term/' . $term->did;
  }

このフックを実装すると、フィールド$vocabulary->moduleが作成したモジュールの短い名前に変更された場合に、語彙のパスを変更するのにも役立ちます。

または、 custom_url_rewrite_outbound() および custom_url_rewrite_inbound() と記述して、表示されているURLを「外」の世界に書き換え、使用されているURLに変換することもできます。 Drupalによる。
ドキュメントに記載されている例では、この関数の使用方法を明確にする必要があります。

function custom_url_rewrite_inbound(&$result, $path, $path_language) {
  global $user;

  // Change all article/x requests to node/x
  if (preg_match('|^article(/.*)|', $path, $matches)) {
    $result = 'node' . $matches[1];
  }
  // Redirect a path called 'e' to the user's profile edit page.
  if ($path == 'e') {
    $result = 'user/' . $user->uid . '/edit';
  }
}

function custom_url_rewrite_outbound(&$path, &$options, $original_path) {
  global $user;

  // Change all 'node' to 'article'.
  if (preg_match('|^node(/.*)|', $path, $matches)) {
    $path = 'article' . $matches[1];
  }
  // Create a path called 'e' which lands the user on her profile edit page.
  if ($path == 'user/' . $user->uid . '/edit') {
    $path = 'e';
  }
}

他の場合では、Pathautoのようなモジュール、またはビューの分類用語パスを上書きできる Views Term Path Override を使用できます。
役立つ可能性のある他のモジュールは Path redirectTaxonomy Redirect ;です。 Views Term Path Overrideのプロジェクトページでは、代替案として Taxonomy Views Integrator が推奨されています。

3
kiamlaluno

Pathauto を使用してみてください。私はそれを分類法メニューと組み合わせて使用​​し、素晴らしい結果を得ました。

0
tim.plunkett

あなたは試してみたいかもしれません http://drupal.org/project/tvi 私はそれで用語ページを引き継ぐことに成功するでしょう。特にアタッチメントディスプレイで。

これは同じことを主張しています: http://drupal.org/project/views_tpo

0
doublejosh