web-dev-qa-db-ja.com

CCKフィールドのビューフィルターの作成

ビューをフィルタリングするために、ユーザーにいくつかの選択オプションを表示するカスタムフィルターを作成しました。ただし、これをhook_views_data()フックを使用して追加する方法はわかりません。フィルターが適用されているテーブルがcontent_type_sm_mentionというCCKテーブルであるためです。

現在、私は以下を持っていますが、それが正しいかどうかはわかりません。何が欠けている?

function smd_views_data()
{
    $data = array();
    $data['content_type_sm_mention']['sentiment'] = array(
      'title' => t('Sentiment'),
      'help' => t('Filter by mention sentiment.'),
      'real field' => 'field_mention_sentiment_value',
      'group' => t('Content'),
      'filter' => array(
        'handler' => 'views_handler_filter_sentiment',
      ),
    );
    return $data;
}
function smd_views_handlers() {
  return array(
    'info' => array(
      'path' => drupal_get_path('module', 'smd') . '/includes/views',
    ),
    'handlers' => array(
      'views_handler_filter_sentiment' => array(
        'parent' => 'views_handler_filter',
      ),
    ),
  );
}
5
lordg

不足しているものを見つけるには、関数にhook_views_data_alter()およびdsm($data)を実装して、フィールドの正しいパスを見つけます。

1
infojunkie

Cckモジュールのcontent_views_data()を調べて、何が返されているかを理解できるかどうかを確認します。

0
Ricky Morse