分類学のパンくずリスト


8

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

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

回答:


3

これdrupal_set_breadcrumbは、カスタムモジュールで比較的簡単にできることのようです。

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

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


9

これは、テーマの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>';
  }
}

4

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

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


custom_breadcrumbsを使用していますが、コンテンツタイプに基づいて分類用語のブレッドクラムをカスタマイズできません。
KenAesthetic 2012年

2

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

例えば:

example.com/style/mediterranean

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

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


ここにリンクがあります:drupal.org/project/easy_breadcrumb
User

1

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

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


1

パン粉 7.xの-2.xの:

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

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

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

パン粉の7.x-1.1:

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

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

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

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


Crumbsの7.x-2.xブランチで、ステップ2のカスタムプラグインの代わりに、トークンパターンを指定して、「ブログ」を分類用語ページの親パスとして設定できます。
ドンキホーテ2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.