web-dev-qa-db-ja.com

ビューなしの分類用語ページをアルファベット順に並べ替える

ビューを使用せずに分類ページをアルファベット順に並べることはできますか?

例えば:

THE TERM'S NAME
- A node
- B node
- C node
- D node

ありがとう。

明確化:用語自体をアルファベット順にリセットできることはわかっていますが、分類用語ページのノードティーザーの表示方法はリセットされません(これらは作成された順序のままです)。ティーザーの表示をリセットすることは私が達成しようとしているものです。

4
RedRaven

分類モジュールは taxonomy_term_page 関数を使用して、用語に関連付けられたノードをリストするページを作成します。しかし、実際にクエリを実行する関数は、この前の関数によって呼び出される taxonomy_select_nodes です。

注意: コアをハックしない

したがって、カスタムモジュールを実装し、 hook_menu_alter を使用して、_page callback_に基づく新しい関数を使用して_taxonomy/term/%taxonomy_term_パスの_taxonomy_term_page_を書き換え、カスタムを呼び出すことができますノードをそのように順序付けるために必要な変更を実行する_taxonomy_select_nodes_関数。

次のようなことをする必要があります:

_function mymodule_menu_alter(&$items) {
  // Rewrite the taxonmy term page callback
  $items['taxonomy/term/%taxonomy_term']['page callback'] = 'mymodule_taxonomy_term_page';
}
_

その後、taxonomy_select_nodes()呼び出しで必要な変更を加えることができるように、mymodule_taxonomy_term_page関数を実装する必要があります。

_function mymodule_taxonomy_term_page($term) {
  # code...

  if ($nids = mymodule_taxonomy_select_nodes($term->tid)) {
    # code...
  }
  # code...
}
_

最後に:

_function mymodule_taxonomy_select_nodes() {
  # code...
}
_

Taxonomy_indexテーブルにはノードのタイトルがないため、_mymodule_taxonomy_select_nodes_関数でクエリを作成するには、ノードテーブルをJOINする必要があります。

すべての分類用語ページの動作が変更されることに注意してください。

カスタムモジュールの作成方法の詳細については、 http://drupal.org/node/361112 を参照してください。

5
revagomes