ビューをフィルタリングするために、ユーザーにいくつかの選択オプションを表示するカスタムフィルターを作成しました。ただし、これを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',
),
),
);
}
不足しているものを見つけるには、関数にhook_views_data_alter()
およびdsm($data)
を実装して、フィールドの正しいパスを見つけます。
Cckモジュールのcontent_views_data()
を調べて、何が返されているかを理解できるかどうかを確認します。