web-dev-qa-db-ja.com

分類ブレッドクラム

私はブログタグのコア分類モジュールを使用していますが、タグのページでは、パンくずリストを「ホーム」としてのみ表示できます。私はカスタムブレッドクラムモジュールを使用してコンテンツタイプのブレッドクラムを設定しています(<-分類ブレッドクラムは許可されていません)。ブログタグページ(用語の下のすべてのノードを一覧表示)は、ビューではなくコア分類モジュールから生成されているようです。そのため、ビューで問題を解決できません。

誰かが私を正しい方向に向けることができれば私は感謝します:)

8
Storsey

これは drupal_set_breadcrumb カスタムモジュール内。

これは、おそらくカスタムブレッドクラムモジュールがそれ自体を使用しているものです。カスタムブレッドクラムモジュールの後、レンダリングされる前にブレッドクラムを変更する必要があります。これは、分類のパンくずモジュールでいくつかの問題を引き起こしている可能性があります。

2つのモジュールがパンくずリストを変更する方法に応じて、システムテーブルの重みを変更すると、それを使用できる場合があります。私の推測では、それはhook_init

3
googletorp

これは、テーマのtemplate.phpのtheme_breadcrumb()をオーバーライドすることで実現できます。実装例:

function mytheme_breadcrumb($breadcrumb) {

  if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))) {
    $breadcrumb = array();
    $breadcrumb[] = l(t('Home'), '<front>');
    $breadcrumb[] = l(t('Blog'), 'path/to/blog');

    $tid = arg(2);

    if ($term = taxonomy_term_load($tid)) {
      $uri = entity_uri('taxonomy_term', $term);
      $breadcrumb[] = l($term->name, $uri['path'], $uri['options']);
    }
  }

  // resume normal operation
  if (!empty($breadcrumb)) {
  // uncomment the next line to enable current page in the breadcrumb trail
    $title = drupal_get_title();
    if (!empty($title)) {
      $breadcrumb[] = $title;
      unset($title);
    }

    return '<div class="breadcrumb">'. implode(' &gt; ', $breadcrumb) . '</div>';
  }
}
9
zerolab

そのためのモジュールがあります(2つ以上):

おそらく、その柔軟性と、サイトの残りの部分にもブレッドクラムを作成できるため、カスタムブレッドクラムを選択します。

4
wiifm

分類法についても同じ問題がありました。私は「Easy Breadcrumbs」というモジュールに出くわしました。これは、URL構造から外れてブレッドクラムを生成します(PathautoおよびClean URLに依存)。

例えば:

example.com/style/mediterranean

ホーム>スタイル>地中海

多くの場合これは役に立たないことを理解していますが、パンくずリストがURL構成を模倣している場合は、Easy Breadcrumbsが問題を解決するはずです。

2
woop

With Crumbs 7.x-2.x:

  1. Admin/structure/crumbsにアクセスして、taxonomy。*プラグインワイルドカードを有効にするか、staxonomyプラグインファミリーからより具体的に指定します。 (すでに有効になっている可能性がありますが、確認してください)

  2. admin/structure/crumbs/entity-parent/taxonomy-termに移動し、選択した語彙の親パスとして「ブログ」を設定します。

  3. Admin/structure/crumbsにアクセスし、crumbs.entityParent。*(またはより具体的なもの)が有効になっていることを確認します。

With Crumbs 7.x-1.x:

  1. Admin/structure/crumbsにアクセスして、taxonomy。*プラグインワイルドカードを有効にするか、staxonomyプラグインファミリーからより具体的に指定します。 (すでに有効になっている可能性がありますが、確認してください)

  2. 「ブログ」を「taxonomy/term /%taxonomy_term」の親パスにするCrumbsプラグイン(*)を使用してカスタムモジュールを記述します。

  3. Admin/structure/crumbsにアクセスし、新しいプラグインを有効にして、taxonomy。*またはtaxonomy.termParent。*よりも優先順位を低く(さらに下)します。

(*)プラグインの作成: http://drupal.org/node/1398876
この例では、この例は少々やりすぎかもしれません。

1
donquixote

私は Taxonomy Display を使用していて、drupal_set_breadcrumb()hook_init()で失敗し、ブレッドクラムのオーバーライドが他のモジュールで失敗することがわかりました。

このモジュールのパッチとこのモジュールのユーザーに提供されるソリューションについては、この問題を参照してください。 ブレッドクラム処理により、親のない用語のブレッドクラムを変更できなくなります

1
tmsimont