0

(注: 最初にこれを drupal.org に投稿したのですが、そこでは応答が得られなかったことを思い出しました。そのため、クロス投稿して申し訳ありません)

こんにちは、特定の cck ノード タイプの前処理関数を追加する方法 (組み込みまたはその他) はありますか? cck ノード タイプ内のフィールドの前処理を行いたいと考えています。現在、私は theme_preprocess_node を使用してから $node->type で切り替えを行うか、特定のフィールド名にテーマ関数を使用することができます (そして、現在のフィールドの使用法が探しているノード タイプ内にあることを確認するために切り替えを行います)為に)。私が提案しているのは、このような機能を持つことです...

theme_preprocess_mynodetype(&$vars) {
    // Now I can preprocess a field without testing whether the field is within the target content type
}

...しかし、テンプレートファイルを提案するのと同じ方法で前処理関数を提案できるかどうかわかりません

ありがとう!ロブ

4

2 に答える 2

3

cck の content.module でこの関数を参照してください。


/**
 * Theme preprocess function for field.tpl.php.
 *
 * The $variables array contains the following arguments:
 * - $node
 * - $field
 * - $items
 * - $teaser
 * - $page
 *
 * @see field.tpl.php
 *
 * TODO : this should live in theme/theme.inc, but then the preprocessor
 * doesn't get called when the theme overrides the template. Bug in theme layer ?
 */
function content_preprocess_content_field(&$variables) {
  $element = $variables['element'];
...

于 2010-01-15T01:10:28.773 に答える
1

この投稿を探していると思います。ノードごとの魔法のような前処理はなく、テーマ/テンプレート エンジンごとにのみ行われますが、$vars パラメータでノード タイプにアクセスできるので、そこでスイッチを入れることができます。

それが役立つことを願っています!

于 2010-01-14T19:03:57.717 に答える