回答:
これdrupal_set_breadcrumb
は、カスタムモジュールで比較的簡単にできることのようです。
これは、おそらくカスタムブレッドクラムモジュールがそれ自体を使用しているものです。カスタムブレッドクラムモジュールの後、レンダリングされる前にブレッドクラムを変更する必要があります。これは、分類のパンくずモジュールでいくつかの問題を引き起こしている可能性があります。
2つのモジュールがパンくずリストを変更する方法に応じて、システムテーブルの重みを変更すると、それを使用できる場合があります。私の推測では、hook_init
これは、テーマの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(' > ', $breadcrumb) . '</div>';
}
}
そのためのモジュールがあります(2つ以上):
おそらく、その柔軟性と、サイトの残りの部分にもブレッドクラムを作成できるため、カスタムブレッドクラムを選択します。
分類法についても同じ問題がありました。私は、「Easy Breadcrumbs」というモジュールに出くわしました。これは、URL構造から外れてブレッドクラムを生成します(PathautoおよびClean URLに依存)。
例えば:
example.com/style/mediterranean
ホーム>スタイル>地中海
多くの場合これは役に立たないことを理解していますが、パンくずリストがURL構成を模倣している場合は、Easy Breadcrumbsが問題を解決するはずです。
私は分類表示を使用drupal_set_breadcrumb()
していてhook_init()
、それが失敗していて、ブレッドクラムのオーバーライドが他のモジュールで失敗していることがわかりました。
このモジュールのパッチとこのモジュールのユーザーに提供されるソリューションについては、この問題を参照してください。 ブレッドクラム処理により、親のいない用語のブレッドクラムを変更できなくなります
パン粉 7.xの-2.xの:
admin / structure / crumbsにアクセスして、taxonomy。*プラグインワイルドカードを有効にするか、staxonomyプラグインファミリーからより具体的にします。(すでに有効になっている可能性がありますが、確認してください)
に移動しadmin/structure/crumbs/entity-parent/taxonomy-term
、選択したボキャブラリーの親パスとして「ブログ」を設定します。
admin / structure / crumbsにアクセスし、crumbs.entityParent。*(またはより具体的なもの)が有効になっていることを確認します。
パン粉の7.x-1.1:
admin / structure / crumbsにアクセスして、taxonomy。*プラグインワイルドカードを有効にするか、staxonomyプラグインファミリーからより具体的にします。(すでに有効になっている可能性がありますが、確認してください)
「ブログ」を「taxonomy / term /%taxonomy_term」の親パスにするCrumbsプラグイン(*)を使用してカスタムモジュールを記述します。
admin / structure / crumbsにアクセスし、新しいプラグインを有効にして、taxonomy。*またはtaxonomy.termParent。*よりも優先順位を低く(さらに下)します。
(*)プラグインの作成:http :
//drupal.org/node/1398876
例はこの目的には少々やり過ぎかもしれません。