Drupal 5.x でアグリゲーター カテゴリのテーマを設定するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1344097

質問

はい、まだ Drupal 5 を使用しています。からかわないでください。

Aggregator モジュールを使用してカテゴリを作成しました。カテゴリの URL は次のとおりです。 www.example.com/aggregator/categories/2. 。これをテーマにするにはどうすればよいですか?それはテンプレートでテーマを設定できるノードですか、それとも使用する必要がある他のプロセスがありますか?

編集:明確にするために、個々のアグリゲーター項目のテーマだけでなく、ヘッダーのすぐ下にテキストを追加したいと思います。申し訳ありませんが、最初は省略していました。

役に立ちましたか?

解決

を見てください ソース (いつも役に立ちます):

  • 見つめている hook_menu(), 、Drupalの「URLルーター」、 私たちは見る それ aggregator/categories/2 によって扱われます
  • aggregator_page_category(). 。この関数はデータをフェッチしてから呼び出します。 _aggregator_page_list(), 、次に呼び出します
  • aggregator_page_list(). 。この関数はすべてのフィード項目をループします (while ($item = db_fetch_object($result))) 選択したカテゴリにあり、
  • それらをテーマにするtheme('aggregator_page_item', $item) *

ほら、これがテーマ設定ポイント (テーマ オーバーライド) です。テンプレート (またはカスタム テーマ関数) でテーマを設定できます。

編集:標準の Drupal 5 ではヘッダーのテーマ設定や変更が難しいようです。もう一度ソースを見てください: _aggregator_page_list() すべての(テーマ別の)フィード項目を連結し、それらを でラップするだけです。 <div id="aggregator">, 、そしてポケットベルとフィードアイコンを追加します - ここにフックするものは何もありません。 _aggregator_page_list() オプションの 3 番目の引数があります $header これはまさにあなたが望むことを実行します - 残念ながら、この引数は次の目的には使用されません。 aggregator/categories/2. 。したがって、ヘッダーにテキストを追加するには、ハッキングする必要があります aggregator.module.

または、ラッパーのテーマ オーバーライドを追加した Drupal 6 にアップグレードします。

foreach ($items as $item) {
  $output .= theme('aggregator_item', $item);
}
$output = theme('aggregator_wrapper', $output);

編集終了

Drupal 5 のテーマを設定する方法については、を参照してください。 http://drupal.org/theme-guide/5 , テンプレート.php:他のテーマ関数をオーバーライドする, アグリゲータモジュールの適切なテーマ設定, theme() APIドキュメント, 、など。等

幸運を!

* いくつかのカテゴリ処理を追加し、すべての項目をいずれかのコンテナにラップします

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top