0

基本分類法を使用してノードを分類するページがあります(たとえば、「種」->動物->哺乳類->類人猿)。

  1. 分類法のページをパネルで上書きしたい
  2. また、デフォルトの分類法に基づいて、すべてのノードが適切なブレッドクラムを取得できるようにしたいです。

#1と#2を別々にうまく解決しましたが、一緒にプレイさせることはできません。

#1の場合、私が見つけた最善の解決策は、/ admin / build/pagesの「分類用語テンプレート」をアクティブ化することです。優れたガイドはhttp://drupaleasy.com/blogs/ultimike/2010/10/taxonomy-term-pages-steroids-using-panels-viewsで見つけることができます

#2の場合、カスタムブレッドクラムモジュール(カスタムタクソノミーブレッドクラムサブモジュールを含む)とタクソノミーブレッドクラムの両方。残念ながら、どちらの方法も#1で使用されているのと同じフックを乗っ取り、そうすることで#1を無効にします。

どうすれば両方の目標を同時に達成できますか?どうもありがとう!

4

1 に答える 1

1

#2には、カスタムブレッドクラムを使用できます。バージョン6.x-1.xについてはよくわかりませんが、6.x-2.0が正常に機能することは確認できます。あなたがする必要があることはすることです:

  • 分類法用のカスタムブレッドクラムとパネル用のカスタムブレッドクラムの両方のサブモジュールを有効にします
  • カスタムブレッドクラム設定ページで設定します
  • 構成ページの下部で、パネルのカスタムブレッドクラムの重みを最大にします(パネル自体とうまくいかない分類法のカスタムブレッドクラムをオーバーライドするため)

ただし、カスタムブレッドクラムはパネルの後に作成されるため、実際にパネルで使用することはできません。ただし、パネルの外のpage.tpl.phpに印刷できます。

編集:

パネル用のカスタムブレッドクラムはそれとは何の関係もなかったようです:)

設定ページに非常に誤解を招くテキストが表示されました(「パネルに分類法のブレッドクラムを使用する」)。panelsさらに調査した結果、重みが小さい場合に機能することが判明しました(データベースのcustom_breadcrumbs_taxonomy表を参照)。system

本当にパンくずリストをパネルに表示したい場合は、次の(ハックっぽい)方法を使用してそれを行うことができます。

  • 分類法のブレッドクラムを構成する
  • 説明されているように、重みがシステムテーブルで適切であることを確認します
  • ページパネルにブレッドクラムを追加します
  • 次のように、パネル内のブレッドクラムをcustom_breadcrumbs_taxonomyによって作成された最終的なブレッドクラムに置き換える前処理関数を追加します。

(注:私のパネルはページタイプで、contentセクションにあります)

function abn_preprocess_page(&$vars) {
  $old_breadcrumb = strstr( strstr($vars['content'],'<div class="breadcrumb">'), '</div>', true);
  if ($old_breadcrumb) {
    $old_breadcrumb .= '</div>';
    $vars['content'] = str_replace($old_breadcrumb, $vars['breadcrumb'], $vars['content']);
  }  
}
于 2011-08-11T18:44:11.957 に答える